我有一组客户,其中包含CustomerId,CustomerName和其他一些列。
我正在传递一个ID列表以过滤集合。
这是多久了 - 在这个例子中,'filteredCustomers'应该包含customerId为3或5的客户。
List<int> customerIds = new List<int>();
customerIds.Add(3);
customerIds.Add(5);
var filteredCustomers = from Customer in Customers.Where(x=>x.CustomerId).Contains(customerIds);
我做错了什么 - 非常感谢任何帮助。
乔
答案 0 :(得分:4)
您可以使用:
var filteredCustomers = Customers.Where(x => customerIds.Contains(x.CustomerId));
但是,我强烈建议您使用HashSet<T>
代替List<T>
,因为如果您将来添加更多数字,它会使Contains
检查速度大大加快。这看起来像是:
var customerIds = new HashSet<int>();
customerIds.Add(3);
customerIds.Add(5);
var filteredCustomers = Customers.Where(x => customerIds.Contains(x.CustomerId));
答案 1 :(得分:2)
from Customer in Customers
where customerIDs.Contains(Customer.CustomerId);
答案 2 :(得分:1)
var filteredCustomers = Customers.Where(x=>customerIds.Contains(x.CustomerId));
答案 3 :(得分:0)
var byCustIds = from d in Customers
where customerIDs.Contains(d.CustomerId)
select d;