Как Я Могу Использовать Тернарный Оператор Без Возврата Значения?
Здравствуйте люди,
Я хочу использовать такой тернарный оператор, но он не работает.
var itemToRemove = myCollection.Any(p => p != null).FirstOrDefault(); itemToRemove != null ?? myCollection.Remove(itemToRemove); //this don't compile!
Это возможно?
MCY
почему бы не использовать if?
BillWoodruff
@MCY на самом деле, вы можете достичь того, что OP явно пытается сделать здесь без 'if: смотрите мое решение ниже (примечание: в то время, когда я писал свой ответ, Решение OriginalGriff здесь не было видно).
johannesnestler
где находится тернарный оператор (в .NET есть только один, и я не вижу его в вашем примере)? Вы имеете в виду нуль-коалесцирующий оператор? Таким образом, вы не можете использовать оператор "вот так", потому что вы использовали неправильный синтаксис, и из приведенного примера кажется, что у вас также есть больше проблемы "как я должен это сделать". Так чего же вы хотите добиться в итоге?
Просто чтобы подвести итог что не так:
Any не возвращает коллекцию (возможно, не используйте синтаксический сахар, такой как var, если вы не знаете, как его использовать - если бы вы написали там "bool", ошибка могла бы быть очевидна для вас)
Таким образом bool не может быть null
Вы не назначаете что-то такое, чтобы операторы "? :" и "??" не работали (MSDN? просто нажмите F1 в VS на операторе...)
У вас есть ошибки компиляции - читайте их?
EduChapow
спасибо всем