Почему я не могу использовать оператор распространения значения null в лямбда-выражениях?C#

Место общения программистов C#
Ответить
Anonymous
 Почему я не могу использовать оператор распространения значения null в лямбда-выражениях?

Сообщение Anonymous »

Я часто использую в своем коде оператор распространения нуля, потому что он делает код более читаемым, особенно в длинных запросах, мне не нужно проверять на ноль каждый используемый класс.

Следующий код выдает ошибку компиляции, из-за которой мы не можем использовать оператор распространения нуля в лямбда-выражении.

Код: Выделить всё

var cnt = humans.AsQueryable().Count(a => a.House?[0].Price == 5000);
Ошибка:


Ошибка CS8072. Лямбда-выражение дерева выражений может не содержать оператор распространения нуля.


C# может легко преобразовать приведенный выше код в код следующего кода, если действительно не может сделать ничего другого!

Код: Выделить всё

var cnt = humans.AsQueryable().Count(a => a.House != null && a.House[0].Price == 5000);
Мне любопытно, почему C# ничего не делает, а просто выдает ошибку компилятора?

Подробнее здесь: https://stackoverflow.com/questions/288 ... xpressions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»