3

私はこのシナリオにいます。2 つの異なるオブジェクト タイプの 2 つのリストがあり、どちらも共有プロパティ値を持っています。だとしましょうinvoiceID

table_ASQL で、列値が any insideinvoiceIDと一致する場合、すべてのレコードを取得したい場合は、おそらく次のようにします。invoiceIdtable_B

Select *
From table_A
where invoiceID in ( select invoiceId from table_B)

このシナリオの C# での同等の LINQ または Lambda 式は何ですか?

次のような単一の値を使用して、リスト内の要素を検索することに慣れています。

var result = list_A.Where(x=>x.InvoiceID = someInvoiceID) 

または.contains()代わりに。

ただし、これは単一のinvoiceID値のみをカバーできます。

invoiceIDそれぞれのループを実行してlist_B、結果を別のリストに保存できると思いますが、これを行うためのより良い方法があるかどうか疑問に思っていますか?

4

1 に答える 1

5

次のコードが機能するはずです。

var someInvoiceList = new int[] {1, 2, 3};
var result = list_A.Where(x => someInvoiceList.Contains(x.InvoiceID));
于 2013-04-09T18:54:18.590 に答える