¿Alguna alternativa para esta consulta LINQ ‘Where’?
Tengo esta consulta de LINQ. Necesito buscar alguna buena alternativa, si es posible, para esta expresión lambda resaltada dentro de la condición Where. Estaba pensando en usar la condición coalesce ( ?? ) pero no pude hacer una consulta.
Entonces, quiero obtener aquellos elementos de la lista que tienen una propiedad nula o, si no es nula, cumple una condición ( Contains() ).
davy.ai
Una alternativa a la expresión lambda resaltada dentro de la condición
Where
podría ser usar el operador de fusión nula (??
) de la siguiente manera:En esta expresión, el
?
verifica sip.Property
es nulo o no. Si no es nulo, entonces se accede a la propiedadSubPropertyList
y se aplica el métodoContains
a ella. De lo contrario, el operador??
devuelve una lista vacía y se aplica el métodoContains
a ella. De esta manera, podemos manejar el caso en el quep.Property
es nulo sin causar una excepción de referencia nula.Otra alternativa podría ser usar el método
Any
de la siguiente manera:Esta expresión verifica si
p.Property
es nulo y devuelve verdadero en ese caso. De lo contrario, aplica el métodoAny
a la propiedadSubPropertyList
para verificar si contiene elItem
. Si alguna de estas condiciones es verdadera, el elemento se incluye en el conjunto de resultados.