通过比较两个数据表避免重复值

时间:2012-11-29 13:52:15

标签: c# datatable duplicate-data

  

可能重复:
  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。

**它们都不是主键或唯一键。

**如果你什么都不懂,请问我。

1 个答案:

答案 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);