У меня есть простой небольшой фрагмент кода, который меня расстраивает:
HashSet<long> groupUIDs = new HashSet<long>();
groupUIDs.Add(uid)? unique++ : dupes++;
Во время компиляции он генерирует ошибку:
В качестве оператора можно использовать только выражения присваивания, вызова, увеличения, уменьшения и нового объекта.
HashSet.Add
задокументирован для возврата логического значения, поэтому тернарный оператор (?) Должен работать, и это выглядит как полностью законный способ отслеживать количество уникальных и повторяющихся элементов, которые я добавляю в хэш-набор.
Когда я переформатирую его как if-then-else, он работает нормально.
Может ли кто-нибудь объяснить ошибку, и есть ли способ сделать это с помощью простого тернарного оператора?