C# LINQ:比较两个数据表中的特定值

C# LINQ:比较两个数据表中的特定值,c#,linq,C#,Linq,我有两个数据表 datatable 1中的数据包含FirstName、LastName、DOB和SEXT列 datatable 2包含CustomerID、FirstName、LastName、DOB和SEXT列的数据 我想比较数据表1和2中的firstName、LastName、DOB和gender,如果存在匹配项,则将数据表2中的该行加载到新的数据表中 下面是我正在使用的,我可以与Firstname进行比较,但我想添加lastname、DOB和性别。你能告诉我怎么做吗 我想这样做,如果fir

我有两个数据表

datatable 1中的数据包含FirstName、LastName、DOB和SEXT列 datatable 2包含CustomerID、FirstName、LastName、DOB和SEXT列的数据

我想比较数据表1和2中的firstName、LastName、DOB和gender,如果存在匹配项,则将数据表2中的该行加载到新的数据表中

下面是我正在使用的,我可以与Firstname进行比较,但我想添加lastname、DOB和性别。你能告诉我怎么做吗

我想这样做,如果firstname、lastname、dob和gender匹配,那么在datatable 2中返回匹配的行。表之间的列长度不同

DataTable dtMerged = (from a in dataTable.AsEnumerable()
                                  join b in dt.AsEnumerable()
                                  on a["Forename"].ToString() equals b["FirstName"].ToString()
                                  into g
                                  where g.Count() > 0
                                  select a).CopyToDataTable();

            dtMerged.AsDataView();
试试这个

DataTable dtMerged = dataTable.AsEnumerable()
    .Where(ra => dt.AsEnumerable()
    .Any(rb => rb.Field<string>("firstname") == ra.Field<string>("firstname")
      && rb.Field<string>("lastname") == ra.Field<string>("lastname")
      && rb.Field<DateTime>("dob") == ra.Field<DateTime>("dob")
      && rb.Field<string>("gender") == ra.Field<string>("gender")))
              .CopyToDataTable();
DataTable dtMerged=DataTable.AsEnumerable()
.Where(ra=>dt.AsEnumerable()
.Any(rb=>rb.Field(“firstname”)==ra.Field(“firstname”)
&&rb.Field(“lastname”)==ra.Field(“lastname”)
&&rb.字段(“dob”)==ra.字段(“dob”)
&&rb.字段(“性别”)==ra.字段(“性别”))
.CopyToDataTable();
试试这个

DataTable dtMerged = dataTable.AsEnumerable()
    .Where(ra => dt.AsEnumerable()
    .Any(rb => rb.Field<string>("firstname") == ra.Field<string>("firstname")
      && rb.Field<string>("lastname") == ra.Field<string>("lastname")
      && rb.Field<DateTime>("dob") == ra.Field<DateTime>("dob")
      && rb.Field<string>("gender") == ra.Field<string>("gender")))
              .CopyToDataTable();
DataTable dtMerged=DataTable.AsEnumerable()
.Where(ra=>dt.AsEnumerable()
.Any(rb=>rb.Field(“firstname”)==ra.Field(“firstname”)
&&rb.Field(“lastname”)==ra.Field(“lastname”)
&&rb.字段(“dob”)==ra.字段(“dob”)
&&rb.字段(“性别”)==ra.字段(“性别”))
.CopyToDataTable();

sorry@Anas,这不是重复的。我确实看了那个答案,但那个答案比较了所有列,但我想比较特定列。@edcoder是的,确实是重复的。可能不是准确的。对不起@Anas,这不是重复的。我确实看了那个答案,但那个答案比较了所有列,但我想比较特定列。@edcoder是的,确实是重复的。可能不是准确的。谢谢你@Shyam。这很有效。正是我想要的。谢谢你@Shyam。这很有效。正是我想要的。