我有一个客户ID列表,custList(字符串)。
我想对数据集使用LINQ查询,以获取customer表中的所有客户,其中customerID是“IN”我的custList(字符串)。
这在LINQ中是否可行?我在网上搜索过但找不到答案。我是LINQ的新手..
由于
答案 0 :(得分:2)
在LINQ中,您使用Contains()
方法执行这类查询。
我不知道LINQ to DataSets,但在LINQ to SQL中,您可以执行以下操作:
var statuses = new int[] {1, 2, 3};
var query = from p in dataContext.Products
where statuses.Contains(p.Id)
select p;
这应该生成类似于:
的SQLselect * from Product p
where p.Id in (1, 2, 3)
(注意在生成的SQL的LINQ代码中它是如何反复出现的 - 这就是为什么如果你很了解SQL它不是很直观,但是它可以非常优雅地使用现有的.NET语言功能)
这通常也适用于string
以及L2S知道的一些其他基本类型的集合,因为它们位于框架中。
答案 1 :(得分:1)
var custList = new HashSet<string>() { "a", "b", "c"...};
from record in table.ToEnumerable()
where custList.Contains(record.Field<string>("customerID"))
答案 2 :(得分:0)
var custList = new HashSet<int> { 10, 15, 17 };
CustomerSet.Where(c => custList.Contains(c.CustomerID));