我有一种情况需要查找来自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);
如何修改此项以允许我需要参与的额外字符串?
答案 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}},JOBCLASSESPOSITIONTITLE
和AnotehrString
字段派生的三个字段对象。