Linq lamdba Group Join外部接続例

1939 ワード

その実用from..Linq文は外部接続が簡単で分かりやすいので、個人的にlamdbaを使うのは純粋に技術的な追求でしょう.
  
DataTable exceldt=new DataTable();
DataTable nomacdt=new DataTable();
exceldt = exceldt.AsEnumerable().GroupJoin(nomacdt.AsEnumerable(), a => a.Field<String>("COP_G_NO"), b => b.Field<String>("newmachineType"), (a, b) => new
{

G_NO = a.Field<Int32>("G_NO"),
COP_G_NO = a.Field<String>("COP_G_NO"),
G_QTY = a.Field<String>("G_QTY"),
QTY_1 = a.Field<String>("QTY_1"),
NET_WT = String.IsNullOrWhiteSpace(a.Field<String>("NET_WT")) ? (nomacdt.Rows.Count > 0 ? b.Select(c => c.Field<Decimal>("NW")).Single().ToString() : a.Field<String>("NET_WT")) : a.Field<String>("NET_WT"),
GROSS_WT = String.IsNullOrWhiteSpace(a.Field<String>("GROSS_WT")) ? (nomacdt.Rows.Count > 0 ? b.Select(c => c.Field<Decimal>("GW")).Single().ToString() : a.Field<String>("GROSS_WT")) : a.Field<String>("GROSS_WT"),

}).ToDataTable();