SQL 使用 DataTable 到 Linq 的位置

SQL Where in to Linq with DataTable

我正试图在 c# 中实现这一点

Select a.Name,a.Param
from Customization a
where a.name in (select Name from Standard)

我试过类似的方法,但还是不行。

 merge = dt1.AsEnumerable()
            .Where(r => r.Field<string>("Name")
            .Contains(dt2.Rows.Contains("Name")))
            .CopyToDataTable();

通过使用当前的方式,我们需要从第二个数据中获取名称列表-table(dt2) dt1 中的每一行,因此我建议您获取列表首先检查名称,然后检查 r.Field<string>("Name") 是否包含在集合中。为此,您可以使用以下代码

var NameCollection = dt2.AsEnumerable().Select(x=> x.Field<string>("Name")).ToList();

merge = dt1.AsEnumerable()
           .Where(r => NameCollection.Contains(r.Field<string>("Name")))
           .CopyToDataTable();