我刚刚开始学习linq和lambda表达式,它们似乎非常适合在复杂的对象集合中查找重复项,但我有点困惑,希望有人可以帮助我回到快乐编码的道路上.
我的对象的结构类似于list.list.uniqueCustomerIdentifier
我需要确保整个复杂对象中没有重复的uniqueCustomerIdentifier.如果有重复项,我需要确定哪些是重复的并返回重复项列表.
解压缩层次结构
将每个元素投影到其uniqueID属性
将这些ID分组
按具有多于1个元素的组筛选组
将每个组投影到组的密钥(返回uniqueID)
枚举查询并将结果存储在列表中.
var result = myList .SelectMany(x => x.InnerList) .Select(y => y.uniqueCustomerIdentifier) .GroupBy(id => id) .Where(g => g.Skip(1).Any()) .Select(g => g.Key) .ToList()