C# Lambda 表达式的 SQL [IN] 语句等效项是什么?

fro*_*oxx 3 c# lambda

我就在这种情况下。我有两个不同对象类型的列表,它们都有一个共享的属性值。假设是这样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,然后将结果存储在另一个列表中,但我只是想知道是否有更好的方法来做到这一点?

Pio*_*app 5

以下代码应该有效:

var someInvoiceList = new int[] {1, 2, 3};
var result = list_A.Where(x => someInvoiceList.Contains(x.InvoiceID));
Run Code Online (Sandbox Code Playgroud)