可能重复:
Comparing two datatable and getting the duplicate values
我有两个DataTable t1和t2。
t1 has 2 fields (SPARTE_ID, SPARTE both as string)
t2 has 2 fields (sparte_id, sparte both as string)
all rows (value) of SPARTE(of t1) is null
I have to bring values from t2 (if sparte_id == SPARTE_ID) and update t1.
我可以轻松完成所有这些工作。
但问题是,我必须找出t2是否有超过1个相同的sparte_id和不同的sparte值。如果我得到这样的东西,我不能在这个SPARTE_ID上更新t1的SPARTE字段,并且必须列出这些sparte_id并列出sparte。
如果有人能告诉我,我会很高兴如何获得这种情况下的价值观?我在.NetFramework 3.5上使用VS-2010。
**它们都不是主键或唯一键。
**如果你什么都不懂,请问我。
答案 0 :(得分:0)
这是一种找到你的ID-Sparte组合的方法:
var t2IdDups = t2.AsEnumerable()
.GroupBy(r => r.Field<string>("SPARTE_ID"))
.Where(g => g.Count() > 1);
var t2Ambiguous = t2IdDups
.Where(g =>
g.Any(r =>
r.Field<string>("SPARTE") != g.First().Field<string>("SPARTE")))
.Select(g => new
{
SparteID = g.Key,
Spartes = string.Join(",", g.Select(r => r.Field<string>("SPARTE")))
});
foreach (var x in t2Ambiguous)
Console.WriteLine("ambiguous ID={0} Spartes={1}"
, x.SparteID, x.Spartes);