Existe um método padrão definido em .Net for C # para remover todos os elementos de uma lista quais são null
?
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
Digamos que alguns dos parâmetros sejam null
; Não posso saber com antecedência e quero removê-los da minha lista para que ela contenha apenas parâmetros que não sejam nulos.
Não conheço nenhum método embutido, mas você poderia apenas usar o linq:
fonte
parameterList
já for uma Lista, pois criará desnecessariamente uma nova cópia. Nesse caso, use oRemoveAll
método como outros sugerem.Array
.O método RemoveAll deve resolver o problema:
fonte
O método
OfType()
irá ignorar os valores nulos:fonte
OfType
seleciona objetos de um determinado tipo, não achando que não incluiránull
valores ... Então estou um pouco cansado de apresentar isso em meu próprio código.fonte
Fácil e sem LINQ:
fonte
List
aula próximo aRemoveAll
, então eu recomendo aquele para maior clareza. Se o desempenho for crucial, você pode seguir essa abordagem (embora eu remova os colchetes e provavelmente adicione um comentário para desenvolvedores desatentos).RemoveAll
recebeu umPredicate
, então você deve usarRemoveAll(x => x == null)
, conforme visto na resposta aceita e de Mark Bell.Existe outra opção simples e elegante:
Isso removerá todos os elementos que não são do tipo, o
EmailParameterClass
que obviamente filtrará quaisquer elementos do tiponull
.Aqui está um teste:
fonte
EmailParameterClass
e só terão um valor igual anull
?