如何做到这一点:
我有两个datatables
:
FIRST:
组成DT_All
--->由emp_num
,......其他列SECOND:
DT_Part
--->由一列作为键emp_num
组成
其中DT_part
可能是DT_ALL
的一部分,或者在此数据表中不存在。
如果它是DT_All
我想要一种方法来识别它们DT_ALL
。如何以简单快捷的方式做到这一点?
示例:
DT_All
emp_num column1 column2 column3
227 7 33.3 ss
155 5 10.7 mm
122 5 1.66 aa
678 2 8.9 rr
555 1 1.11 aa
DT_part
:
emp_num
155
678
我想要这样的输出:
emp_num column1 column2 column3 flag
227 7 33.3 ss 0
155 5 10.7 mm 1
122 5 1.66 aa 0
678 2 8.9 rr 1
555 1 1.11 aa 0
答案 0 :(得分:1)
您可以在这两个表上执行left join
: -
var result = from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable()
on t1.Field<int>("emp_num") equals t2.Field<int>("emp_num") into g
from foo in g.DefaultIfEmpty()
select new
{
emp_num = t1.Field<int>("emp_num"),
col1 = t1.Field<string>("col1"),
flag = foo != null ? 1 : 0
};
答案 1 :(得分:0)
您可以使用Contains
运算符。下面的伪代码(未经测试,可能会出现一些拼写错误):
var items = DT_All
.AsEnumerable()
.Where(x => DT_Part.Field<string>("emp_num").Contains(x.EmpNum));