Как удалить не дубликаты из списка в С#
Я хочу сделать что-то противоположное здесь
У меня есть список, и я знаю, как удалить дубликаты. Но я хочу иметь вариант, когда пользователь может выбрать дубликат для сохранения. Некоторые queries запроса Я могу иметь список, который будет показывать только дубликаты. Что-то вроде:
Давайте скажем, что мой список:
"Том" "Боб" "Фрэнк" "Боб" "Лэйси" "Фрэнк"
Я знаю, что если я использую отличный метод, я получу:
"Том" "Боб" "Фрэнк" "Лэйси"
Я не знаю, какой метод мне нужно использовать:
"bob" "bob" "откровенный" "откровенный"
или получить
"bob" "откровенный"
вызывают те, которые повторяются.
Ответы
Ответ 1
Вы можете использовать GroupBy
, чтобы отфильтровать элементы, которые встречаются только один раз, затем сгладить оставшиеся элементы обратно в список:
var resultList = list.GroupBy(x => x)
.Where(g => g.Count() > 1)
.SelectMany(g => g)
.ToList();
Ответ 2
Мне нужно было сравнить их по определенному свойству до этого, я просто изменил ваш запрос BrokenGlass на
var resultList = itemsThatNeedToBeAdded.GroupBy(x => x.property1)
.Where(g => g.Count() > 1 )
.SelectMany(g => g)
.ToList();