给出以下查询:
Select * from myTable where stringField in ('A','B','C')
我将从数据库中提取项目,还没有决定是否将它们存储在列表,数组或其他集合对象中,但理想情况下需要内置的内容(没有自定义类),没有手动迭代。
重点是性能和代码可维护性。
在.net中执行此操作的最有效方法是什么?
提前致谢
答案 0 :(得分:2)
最方便的方法是Enumerable.Contains
(.NET 3.5以上)。它也应该表现良好,虽然我没有基准。
示例:
var list = new[] { "A", "B", "C" };
var matches = myTable.Where(o => list.Contains(o.stringField));
答案 1 :(得分:1)
var searchItems = new [] {"A", "B", "C"};
var query = from c in myTable
where searchItems.Contains(c.stringField)
select c;
这是关于LINQ 2 SQL。
答案 2 :(得分:0)
您可以将Linq Intersect与自定义Equality Comparer一起使用