У меня есть список, в котором у MyClass есть свойство 'Name'. Я хочу знать, есть ли дубликат MyClass с тем же именем в списке.
Кроме того, у меня есть другой список, и я хочу знать, есть ли дубликаты по сравнению с List A.
Чтобы ответить на первый вопрос
Я хочу знать, есть ли дубликат MyClass с тем же именем в список.
вы можете сделать это:
bool hasDuplicates =
listA.Count != listA.Select(c => c.Name).Distinct().Count();
В ответ на второй вопрос
Кроме того, у меня есть другой Список и я хотите знать, есть ли какие-либо дубликатов по сравнению со списком А.
вы можете сделать это:
bool hasDuplicates =
differentList.Select(c => c.Name).Intersect(listA.Select(c => c.Name)).Any();
Чтобы проверить дубликаты имен в пределах одного List<MyClass>
list
:
var names = new HashSet<String>();
foreach (MyClass t in list)
if(!names.Add(t.Name))
return "Duplicate name!"
return "No duplicates!"
или варианты в зависимости от того, что вы хотите делать, когда есть/не дублируются. В случае двух отдельных списков просто создайте набор names
из одного списка и зациклируйте с этим типом проверки на другом (детали зависят от того, что должно было произойти для повторяющихся имен только в первом списке, во втором списке только или только между одним списком и другим, когда каждый из них без дубликатов, если рассматривать их отдельно - ваши спецификации слишком неточны, чтобы позволить мне угадать, чего вы хотите или ожидаете в каждой из множества возможных комбинаций!