C# SQL Where in到带有DataTable的Linq

C# SQL Where in到带有DataTable的Linq,c#,linq,sql-to-linq-conversion,C#,Linq,Sql To Linq Conversion,我试图用c语言实现这一点# 我试过这样的东西,但还是不行 merge = dt1.AsEnumerable() .Where(r => r.Field<string>("Name") .Contains(dt2.Rows.Contains("Name"))) .CopyToDataTable(); merge=dt1.AsEnumerable() .其中(r=>r.Field(“名称”) .Contai

我试图用c语言实现这一点#

我试过这样的东西,但还是不行

 merge = dt1.AsEnumerable()
            .Where(r => r.Field<string>("Name")
            .Contains(dt2.Rows.Contains("Name")))
            .CopyToDataTable();
merge=dt1.AsEnumerable()
.其中(r=>r.Field(“名称”)
.Contains(dt2.Rows.Contains(“名称”))
.CopyToDataTable();

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

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

merge = dt1.AsEnumerable()
           .Where(r => NameCollection.Contains(r.Field<string>("Name")))
           .CopyToDataTable();
var namecolection=dt2.AsEnumerable().Select(x=>x.Field(“Name”)).ToList();
merge=dt1.AsEnumerable()
.Where(r=>namecolection.Contains(r.Field(“Name”))
.CopyToDataTable();

什么是dt1和dt2?它们是如何构造的?Dt1和Dt2是数据表。一旦接受的冷却计时器关闭,我将接受它。再次感谢大家!
var NameCollection = dt2.AsEnumerable().Select(x=> x.Field<string>("Name")).ToList();

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