var  tmp = from a in DT1.AsEnumerable()
                                   join b in DT2.AsEnumerable()
                                   on new { bm = a.Field<string>("编码"), lx = "类型" } equals new { bm = b.Field<string>("编码"), lx = b.Field<string>("类型") }
into ab
                                   from c in ab.DefaultIfEmpty()
                                   select new
                                   {
编码 = a.Field<string>("编码"),
类型 = c == null ? "" : c.Field<string>("类型")
};
                        dt_结果 = tmp.MyCopyToDataTable();
原文:https://www.cnblogs.com/czzl/p/9671997.html