Проблема в том, что при наличии нескольких дубликатов он возвращает несколько истинных значений, а если дубликатов нет, он ничего не возвращает (должно быть ложным).
Ну, это легко решить:
bool hasDupes = t.Any();
Если есть несколько истин, это будет правдой.Если их нет, это будет ложь.
Но, честно говоря, я бы склонялся просто написать свой собственный метод расширения, который выдает сообщение, когда он находит дубликат first , а не создаватьнабор всех дубликатов, а затем запрашивает этот набор:
static bool HasDuplicates<T>(this IEnumerable<T> sequence)
{
var set = new HashSet<T>();
foreach(T item in sequence)
{
if (set.Contains(item))
return true;
set.Add(item);
}
return false;
}
А теперь просто скажите
bool dupes = selectedDrivers.HasDuplicates();
Легко, peasy.