Вы можете сделать это намного проще
List<int> numbers = new List<int>{1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6};
var unique = numbers.Where(n => numbers.Count(m => m == n) == 1);
foreach(var u in unique)
WriteLine(u);
Печать
1
5
Что он делает, так это назначает номера списка, и он просматривает каждого члена в списке (в данном случае этот член называется n
).
Затем проверяется, равно ли число вхождений n
1. Если это так, оно должно быть уникальным.
Итак, для первого числа в нашем списке 1, следующее:
numbers.Count(m => m == n)
Вернет 1.
Когда n
равно 2, тогда
numbers.Count(m => m == n)
Вернет 2.