У меня есть класс с именем Customer
, который имеет несколько строковых свойств, какУдалить дубликаты из массива объектов
firstName, lastName, email, etc.
Я прочитал в информации о клиенте из csv
файла, который создает массив класса:
Customer[] customers
Мне нужно, чтобы удалили дубликатов клиентов с тем же адресом электронной почты, оставив только одну запись клиента для каждого конкретного адреса электронной почты.
Я сделал это, используя 2 контура, но это занимает почти 5 минут, так как обычно существует 50 000+ записей о клиентах. Как только я закончил удаление дубликатов, мне нужно записать информацию о клиенте в другой файл csv (здесь не нужна помощь).
Если я сделал Distinct
в цикле, как бы удалить другие строковые переменные, которые являются частью класса для этого конкретного клиента?
Спасибо, Andrew
ли идея запустить это ежедневно/еженедельно/раз в квартал? Частота этой задачи, скорее всего, будет определять постоянство решения. – mjw
Distinct не будет работать для пользовательских типов без использования нового сопоставления равенства. используйте DistinctBy из MoreLinq. btw эта операция не займет много времени для 50 тыс. элементов, так как разный - это «O (n)» –
. Моим выбором, вероятно, будет сортировка входного файла по дубликатному ключу (по электронной почте в вашем случае) и простейшее предыдущее сравнение текущего значения до добавляя к вашему объекту. – mjw