DataTable中3个项目的重复组合

时间:2014-06-23 20:32:59

标签: linq datatable strongly-typed-dataset

我有一种情况需要查找来自DataTable的Guid,String,String的重复组合。

我最初只需要查找guid,string - 并使用以下方法解析它:

        var duplicates = m_SysAdminData.JOBCLASSES.AsEnumerable()
            .Where (x => x.IsINACTIVEDATENull())
            .GroupBy(d => new KeyValuePair<Guid, string>   (d.DEPARTMENTS_GID,d.JOBCLASSESPOSITIONTITLE))
            .Where(d => d.Count() > 1);

如何修改此项以允许我需要参与的额外字符串?

1 个答案:

答案 0 :(得分:0)

LINQ允许您按匿名类型的对象进行分组,因此您可以像这样重写查询:

var duplicates = m_SysAdminData.JOBCLASSES.AsEnumerable()
        .Where (x => x.IsINACTIVEDATENull())
        .GroupBy(d => new {d.DEPARTMENTS_GID,d.JOBCLASSESPOSITIONTITLE, d.AnotehrString})
        .Where(d => d.Count() > 1);

这将使用匿名类型替换命名泛型类型KeyValuePair<Guid, string>,该类型具有从DEPARTMENTS_GID的{​​{1}},JOBCLASSESPOSITIONTITLEAnotehrString字段派生的三个字段对象。