я имел следующее заявление, которое всегда возвращает нуль:Почему Null недопустимая проекция LINQ?
var addins = allocations.SelectMany(
set => set.locations.Any(q => q.IsMatch(level, count))
? (List<string>)set.addins : null
);
я изменил его немного, и теперь он работает отлично:
var addins = allocations.SelectMany(
set => set.locations.Any(q => q.IsMatch(level, count))
? set.addins : new List<string>()
);
Мой основной вопрос: Почему не нулевой служить тип возврата от тернарного оператора в этом контексте LINQ?
Второй вопрос: есть ли более умный способ сформулировать вышеуказанный запрос (особенно если он устраняет «новый список()»)?
Отличный ответ и проницательность. Кстати, актеры на «set.addins» не нужны в других примерах, так как троичный оператор не задействован. –