我就在这种情况下。我有两个不同对象类型的列表,它们都有一个共享的属性值。假设是这样invoiceID
。
在 SQL 中,如果我想获取所有记录,table_A
因为它的列invoiceID
值与任何invoiceId
inside匹配table_B
,我可能会这样做。
Select *
From table_A
where invoiceID in ( select invoiceId from table_B)
Run Code Online (Sandbox Code Playgroud)
对于这种情况,C# 中等效的 LINQ 或 Lambda 表达式是什么?
我习惯于使用单个值搜索列表中的元素,例如:
var result = list_A.Where(x=>x.InvoiceID = someInvoiceID)
Run Code Online (Sandbox Code Playgroud)
或者.contains()
相反。
然而,这只能涵盖单个invoiceID
值。
invoiceID
我想,我可以为每个运行循环list_B
,然后将结果存储在另一个列表中,但我只是想知道是否有更好的方法来做到这一点?
以下代码应该有效:
var someInvoiceList = new int[] {1, 2, 3};
var result = list_A.Where(x => someInvoiceList.Contains(x.InvoiceID));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7023 次 |
最近记录: |