0

给定以下查询:

Select * from myTable where stringField in ('A','B','C')

我将从数据库中提取项目,但尚未决定是否将它们存储在列表、数组或其他集合对象中,但理想情况下需要内置的东西(无自定义类),并且无需手动迭代。

重点是性能和代码可维护性。

在.net中执行此操作的最有效方法是什么?

提前致谢

4

3 回答 3

2

最方便的方法是Enumerable.Contains(.NET 3.5 以上)。它也应该表现良好,尽管我没有进行基准测试。

例子:

var list = new[] { "A", "B", "C" };
var matches = myTable.Where(o => list.Contains(o.stringField));
于 2012-06-13T09:16:37.153 回答
1
var searchItems = new [] {"A", "B", "C"};

var query = from c in myTable
            where searchItems.Contains(c.stringField)
            select c;

如果它是关于 LINQ 2 SQL 的话。

于 2012-06-13T09:17:07.103 回答
0

您也许可以将 Linq Intersect 与自定义平等比较器一起使用

http://msdn.microsoft.com/en-us/library/bb302032

于 2012-06-13T09:18:21.413 回答