对IEqualityComparer定义的所有相等对象进行分组的有效方法

本文关键字:有效 对象 方法 定义 IEqualityComparer | 更新日期: 2023-09-27 17:57:11

我有一个很大的列表,列出了某些类型的Order对象。此外,我还定义了一个IEqualityComparer<Order>,我的目标是有效地创建一个列表(或分组)列表,其中每个子列表都包含彼此相等的对象。在数学上,我有一个等价关系(IEqualityComparer),并希望有一个所有等价类的列表。我想过使用HashSet<Order>Dictionary<>Lookup<>,但它们似乎不适合我的情况。那么有什么想法吗?

对IEqualityComparer定义的所有相等对象进行分组的有效方法

我认为这样的事情对工作很轻:

var uniqueItems = yourRawList.Distinct(yourComparer);
var result = uniqueItems.Select(i => new List<Order>(yourRawList.Where(o =>yourComparer.Equals(i, o))));