que tenían la siguiente declaración, que siempre devuelve un valor nulo:¿Por qué Null es una proyección LINQ no válida?
var addins = allocations.SelectMany(
set => set.locations.Any(q => q.IsMatch(level, count))
? (List<string>)set.addins : null
);
he cambiado ligeramente, y ahora funciona bien:
var addins = allocations.SelectMany(
set => set.locations.Any(q => q.IsMatch(level, count))
? set.addins : new List<string>()
);
Mi primera pregunta: ¿Por qué no puede servir como nula Tipo de devolución del operador ternario en este contexto de LINQ?
Una pregunta secundaria: ¿Hay una manera más inteligente de formular la consulta anterior (particularmente si elimina la "nueva Lista()")?
Excelente respuesta e información. Por cierto, el molde en "set.addins" no es necesario en los otros ejemplos, ya que el operador ternario no está involucrado. –