对IEqualityComparer定义的所有相等对象进行分组的有效方法
本文关键字:有效 对象 方法 定义 IEqualityComparer | 更新日期: 2023-09-27 17:57:11
我有一个很大的列表,列出了某些类型的Order
对象。此外,我还定义了一个IEqualityComparer<Order>
,我的目标是有效地创建一个列表(或分组)列表,其中每个子列表都包含彼此相等的对象。在数学上,我有一个等价关系(IEqualityComparer),并希望有一个所有等价类的列表。我想过使用HashSet<Order>
、Dictionary<>
或Lookup<>
,但它们似乎不适合我的情况。那么有什么想法吗?
我认为这样的事情对工作很轻:
var uniqueItems = yourRawList.Distinct(yourComparer);
var result = uniqueItems.Select(i => new List<Order>(yourRawList.Where(o =>yourComparer.Equals(i, o))));