2016-01-13 2 views
0

я делаю что-то вроде этого в настоящее время:Как проверить, если имя содержится в другой коллекции

allSales.Where(x => x.location == "NorthAmerica" && x.CompanyName); 

У меня есть List<Company> и объект Компания имеет свойство .CompanyName.

Я хочу отфильтровать для продаж, у которых есть CompanyName, которые находятся в коллекции List.

класс Компания обладает следующими свойствами:

Company 
Id 
Name 

В приведенной ниже не работает, но это то, что я хочу:

allSales.Where(x => x.location == "NorthAmerica" && 
     companies.Exists(x => x.Name = x.CompanyName)); 

где компании является Список

+1

Возможный дубликат [LINQ - свойство массив содержит элемент от другого array] (http://stackoverflow.com/questions/2539442/linq-array-property-contains-element-from-another-array) –

+0

использовать функцию '.Contains' – MethodMan

+0

Что вы хотите сказать? –

ответ

4

Если у вас есть в переменной companies в List<Company>, вы можете использовать LINQ Any method, чтобы сделать что-то вроде этого:

allSales 
.Where(x => 
    x.location == "NorthAmerica" && 
    companies.Any(c => c.Name == x.CompanyName)); 
3

Вы можете использовать метод Any() на вашем объекте List<Company> с запросом, чтобы вернуть true или false вашему предикату. Попробуйте что-то вроде:

allSales.Where(x => x.location == "NorthAmerica" && companies.Any(c => c.Name == x.CompanyName); 
Смежные вопросы