如何检查名称是否包含在另一个集合中

时间:2016-01-13 18:14:43

标签: c# linq

我现在正在做这样的事情:

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

我有一个List<Company>,而公司对象有一个.CompanyName属性。

我想过滤具有List集合中CompanyName的销售。

Company类具有以下属性:

Company
Id
Name

以下不起作用,但这是我想要的:

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

公司名单

2 个答案:

答案 0 :(得分:4)

假设变量List<Company>中有companies,您可以使用LINQ Any method执行以下操作:

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

答案 1 :(得分:3)

您可以对Any()对象上的List<Company>方法使用查询向谓词返回true或false。尝试类似:

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