从分组中排除元素

本文关键字:排除 元素 | 更新日期: 2023-09-27 18:36:53

我正在使用MyClass.some_property作为比较值在Dictionary<long, MyClass>类型的字典中查找重复项:

var dict = new Dictionary<long, MyClass>(...);
var duplicates = from d in dict
                 group d by d.Value.some_property into g
                 where g.Count() > 1
                 select g;

现在我需要排除可枚举duplicates中每个分组中的第一个元素。如何在不将所有内容转换为另一种数据结构的情况下完成此操作?我想避免使用任何额外的内存。

从分组中排除元素

您可以使用

skip

var dict = new Dictionary<long, MyClass>(...);
var duplicates = from d in dict
                 group d by d.Value.some_property into g
                 where g.Count() > 1
                 select new {Key= g.Key, Values = g.Skip(1)};