¿Existe un método predeterminado definido en .Net para C # para eliminar todos los elementos dentro de una lista que son null
?
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
Digamos que algunos de los parámetros son null
; No puedo saberlo de antemano y quiero eliminarlos de mi lista para que solo contenga parámetros que no sean nulos.
No conozco ningún método incorporado, pero podrías usar linq:
fuente
parameterList
ya es una lista, ya que creará una nueva copia innecesariamente. En ese caso, utilice elRemoveAll
método como sugieren otros.Array
.El método RemoveAll debería hacer el truco:
fuente
El método
OfType()
omitirá los valores nulos:fuente
OfType
selecciona objetos de cierto tipo, sin pensar que no incluiránull
valores ... Así que estoy un poco cansado de presentar esto en mi propio código.fuente
Fácil y sin LINQ:
fuente
List
clase justo al ladoRemoveAll
, por lo que lo recomendaría para mayor claridad. Si el rendimiento resultó ser crucial, entonces puede seguir este enfoque (aunque eliminaría los corchetes y probablemente agregaría un comentario para los desarrolladores que no lo saben).RemoveAll
recibió unPredicate
, por lo que debe usarRemoveAll(x => x == null)
, como se ve en el aceptado y la respuesta de Mark Bell.Existe otra opción sencilla y elegante:
Esto eliminará todos los elementos que no sean de tipo,
EmailParameterClass
lo que obviamente filtrará cualquier elemento de tiponull
.He aquí una prueba:
fuente
EmailParameterClass
y solo tendrán un valor igual anull
?