Compare tables based on more than one column using LINQ?

do some preperations for the target structures:
Clone dt1 and add the status datacolumn to the dtReportTMPL
Clone for dtOut1/2
grafik

First LINQ:

(From d1 In dt1.AsEnumerable
Group Join d2 In dt2.AsEnumerable 
On d1("PLCNO").toString Equals d2("PLCNO").toString And d1("DDNO").toString Equals d2("DDNO").toString And d1("EML").toString Equals d2("EML").toString Into gj = Group
From g In gj.DefaultIfEmpty
Let status =  If(isNothing(g), Nothing, g("STATUS"))
Let ra = d1.ItemArray.Append(status).toArray
Select dtOut1.Rows.Add(ra)).CopyToDataTable

Second LINQ:

(From d1 In dt1.AsEnumerable
Join d2 In dt2.AsEnumerable 
On d1("PLCNO").toString Equals d2("PLCNO").toString And d1("DDNO").toString Equals d2("DDNO").toString And d1("EML").toString Equals d2("EML").toString 
Let ra = d1.ItemArray.Append(d2("STATUS")).toArray
Select dtOut1.Rows.Add(ra)).CopyToDataTable
5 Likes