web-dev-qa-db-fra.com

Comment supprimer tous les éléments nuls d'une liste générique en une fois?

Existe-t-il une méthode par défaut définie dans .Net for C # pour supprimer tous les éléments d’une liste qui sont null?

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};

Disons que certains des paramètres sont null; Je ne peux pas savoir à l'avance et je veux les supprimer de ma liste afin qu'elle ne contienne que des paramètres non nuls.

99
pencilCake

Vous voudrez probablement ce qui suit.

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
parameterList.RemoveAll(item => item == null);
199
Lance

Je ne connais aucune méthode intégrée, mais vous pouvez simplement utiliser linq:

parameterList = parameterList.Where(x => x != null).ToList();
37
Paul Hiles

La méthode RemoveAll devrait faire l'affaire:

parameterList.RemoveAll(delegate (object o) { return o == null; });
25
Mark Bell

La méthode OfType() ignorera les valeurs NULL:

List<EmailParameterClass> parameterList =
    new List<EmailParameterClass>{param1, param2, param3...};

IList<EmailParameterClass> parameterList_notnull = 
    parameterList.OfType<EmailParameterClass>();
5
user3450075
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};

parameterList = parameterList.Where(param => param != null).ToList();
4
Steve Danner

Facile et sans LINQ:

while (parameterList.Remove(null)) {};
2
Tobias Knauss

Il existe une autre option simple et élégante:

parameters.OfType<EmailParameterClass>();

Cela supprimera tous les éléments qui ne sont pas de type EmailParameterClass, ce qui filtrera évidemment tous les éléments de type null.

0
Ryan Naccarato