使用linq计算DataTable中两个列值的出现次数

时间:2016-10-19 11:50:10

标签: c# linq datatable count group-by

我有一个数据表,其中包含一组属性,如(名字,姓氏,性别等...) 我想只在两列或属性中计算值的出现次数。

例如,我的数据表中有4列(FirstName,LastName,Age,Gender)。

我想知道数据表中是否有两个或多个记录共享相同的名字和姓氏。

我不知道从哪里开始,任何想法都可以挽救我的一天

谢谢

2 个答案:

答案 0 :(得分:2)

是的,您可以使用LINQ(-To-DataTable)。

按包含两个属性的anonympous类型分组:

var duplicates = table.AsEnumerable()
    .GroupBy(r => new { 
        FirstName = r.Field<string>("First Name"),
        LastName  = r.Field<string>("Last Name")
    })
    .Where(g => g.Count() > 1)
    .Select(g => new { Person = g.Key, Count = g.Count(), Rows = g.ToList() });

答案 1 :(得分:0)

var duplicates = dt.AsEnumerable().GroupBy(r => r[0]).Where(gr => gr.Count() > 1);

dt是数据表。