У меня есть следующий код:Найти дубликаты в списке
List<MyType> myList = new List<MyType>();
// ... add items to the list
var dupes = myList.GroupBy(g => g).Where(x => (x.Count() > 1))
.Select(x => new { obj = x.Key, count = x.Count() }).ToList();
dupe
всегда пусто, даже если я намеренно вставить дубликатов в список. Что я должен добавить в определение MyType, чтобы заставить его работать? Я применил Equals(object obj)
и CompareTo(object obj)
для MyType, но ни один из этих методов не вызван.
Вероятно, более быстрая фильтрация (т. Е. Вызов 'Where') после' Select'. –
'DefaultEqualityComparer' предпочитает использовать' IEquatable .Equals (MyType) ', а не' System.Object.Equals (Object) '. –