请教高手,两个datatable中比较相同值,在线等

qingchen1222 2010-11-15 11:41:09
两个datatable相比较,先设为A,B,A到B表去查找,如果有相同的值,则返回,没有相同值(A中有此值,B中没有)则在B中加入此值。
我只写到这里,就不知道怎么往下写了,请高手帮忙,在线等

for (int i = 0; i < dt3.Rows.Count; i++)
{
for (int j = 0; j < dt4.Rows.Count; j++)
{
if (dt3.Rows[i].ToString() == dt4.Rows[j].ToString())
{
break;
}

}

}
...全文
120 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilijun04 2010-11-15
  • 打赏
  • 举报
回复
速度好快啊 跟不上
q107770540 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qingchen1222 的回复:]

2楼的,linq是怎么使用的啊
[/Quote]
linq可以这样:

void Main()
{
DataTable dt=new DataTable();
dt.Columns.Add("ID");
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);


DataTable dt1=dt.Clone();

dt1.Rows.Add(1);
dt1.Rows.Add(3);
dt1.Rows.Add(5);

var query=from a in dt.AsEnumerable()
let b=from m in dt1.AsEnumerable() select m.Field<string>("ID")
where !b.Contains(a.Field<string>("ID"))
select a;


query.ToList().ForEach(q=>dt1.Rows.Add(q.ItemArray));
Console.WriteLine(dt1);
}

/*
最终dt1数据是
1
3
5
2
*/

qingchen1222 2010-11-15
  • 打赏
  • 举报
回复
2楼的,linq是怎么使用的啊
qingchen1222 2010-11-15
  • 打赏
  • 举报
回复
datatable的结构是一致的谢谢1楼的
itrefer 2010-11-15
  • 打赏
  • 举报
回复
linq去吧 别for了
q107770540 2010-11-15
  • 打赏
  • 举报
回复
datatable结构是否一致?


for (int i = 0; i < dt3.Rows.Count; i++)
{
int m=0;
for (int j = 0; j < dt4.Rows.Count; j++)
{
if (dt3.Rows[i].ToString() == dt4.Rows[j].ToString())
{
break;
}
else{m++;}
if(m==dt4.Rows.Count)
{
dt4.Rows.Add(dt3.Rows[i].ItemArray);
}
}

}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧