C# SQL Where in到带有DataTable的Linq
我试图用c语言实现这一点# 我试过这样的东西,但还是不行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
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();