#c_sharp #list
Есть список Listlist = new List liIDs = list.Distinct().ToList (); Но дубли почему то остаются. Как было 4 элемента, так и осталось. Для примера привел содержимое 0 и 2 списка которые по сути и являются дублированными.
Ответы
Ответ 1
Скорее всего DB это класс, в котором не переопределен Equals/GetHashCode. По умолчанию эквивалентными считаются те ссылки, которые указывают на один и тот же объект. Возможные решения: Переопределите Equals так, чтобы он сравнивал два экземпляра по свойствам. Не забудьте при этом переопределить GetHashCode - можно свести его к вызову GetHashCode у одного из свойств. Реализуйте в классе DB интерфейс IEquatableИспользуйте перегрузку Distinct которая принимает IEqualityComparer . Поменяйте class DB на struct DB - структуры сравниваются по значению свойств. Ответ 2
Для класса DB нужно реализовать Equals() и GetHashCode(), унаследованные от object.
Комментариев нет:
Отправить комментарий