次のクエリが与えられます:
Select * from myTable where stringField in ('A','B','C')
私はデータベースからアイテムをプルしますが、それらをリスト、配列、またはその他のコレクションオブジェクトに格納するかどうかはまだ決定していませんが、理想的には組み込み(カスタムクラスなし)で、手動なしで何かが必要です反復。
焦点はパフォーマンスとコードの保守性にあります。
.netでこれを行う最も効率的な方法は何でしょうか?
前もって感謝します
次のクエリが与えられます:
Select * from myTable where stringField in ('A','B','C')
私はデータベースからアイテムをプルしますが、それらをリスト、配列、またはその他のコレクションオブジェクトに格納するかどうかはまだ決定していませんが、理想的には組み込み(カスタムクラスなし)で、手動なしで何かが必要です反復。
焦点はパフォーマンスとコードの保守性にあります。
.netでこれを行う最も効率的な方法は何でしょうか?
前もって感謝します
最も便利な方法はEnumerable.Contains(.NET 3.5 以上) です。ベンチマークはしていませんが、パフォーマンスも良いはずです。
例:
var list = new[] { "A", "B", "C" };
var matches = myTable.Where(o => list.Contains(o.stringField));
var searchItems = new [] {"A", "B", "C"};
var query = from c in myTable
where searchItems.Contains(c.stringField)
select c;
これは、LINQ2SQLに関するものです。
LinqIntersectをカスタムのEqualityComparerで使用できる場合があります