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;

これは、LINQ2SQLに関するものです。

于 2012-06-13T09:17:07.103 に答える
0

LinqIntersectをカスタムのEqualityComparerで使用できる場合があります

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

于 2012-06-13T09:18:21.413 に答える