使用LINQ在datatable中查找两列条目的重复项

时间:2012-10-18 05:41:54

标签: c# linq

我有一个数据表dt,其vendorId和SubsystemId为其列中的2个。 我想找出这两个列值的组合是否有任何重复的条目。

我是Linq的首发。我怎么能这样做?

2 个答案:

答案 0 :(得分:6)

您可以通过supplierId和SubsystemId对元素进行分组来查找重复项。之后再计算它们,你会发现哪些是重复的。

这就是你如何孤立欺骗:

  var duplicates = items.GroupBy(i => new {i.supplierId, i.SubsystemId})
                  .Where(g => g.Count() > 1)
                  .Select(g => g.Key);

答案 1 :(得分:0)

  var dups = from row in dt.Copy().AsEnumerable()
                       group row by new { SubsystemTypeId = row.Field<int>("SubsystemTypeId"), SupplierId = row.Field<int>("SupplierId") }
                           into grp
                           where grp.Count() > 1
                          select grp.Key;      

感谢SriRam