Эффективный способ сгруппировать все равные объекты, определенные IEqualityComparer

У меня есть большой список определенных объектов, которые имеют тип Order, Кроме того, я определил IEqualityComparer<Order> и моя цель состоит в том, чтобы эффективно создать список списков (или групп), где каждый подсписок содержит объекты, которые равны друг другу. Математически у меня есть отношение эквивалентности (IEqualityComparer) и я хочу получить список всех классов эквивалентности. Я думал об использовании HashSet<Order>, Dictionary<> или же Lookup<> но они не кажутся идеальными для моего случая. Так есть идеи?

1 ответ

Я думаю, что-то вроде этого должно быть на работе

var uniqueItems = yourRawList.Distinct(yourComparer);
var result = uniqueItems.Select(i => new List<Order>(yourRawList.Where(o =>yourComparer.Equals(i, o))));
Другие вопросы по тегам