我就在这种情况下。我有两个不同对象类型的列表,它们都有一个共享的属性值。假设是这样invoiceID。
在 SQL 中,如果我想获取所有记录,table_A因为它的列invoiceID值与任何invoiceIdinside匹配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 次 |
| 最近记录: |