Comment faire pour supprimer tous les éléments null à l'intérieur d'une liste générique d'un seul coup?
Est-il une méthode par défaut défini .Net C# pour supprimer tous les éléments dans une liste qui sont null
?
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
Disons que certains paramètres sont null
; je ne peux pas savoir à l'avance et j'ai envie de les supprimer de ma liste, afin qu'elle ne contient que les paramètres qui ne sont pas null.
InformationsquelleAutor pencilCake | 2010-06-18
Vous devez vous connecter pour publier un commentaire.
Vous voudrez probablement le suivant.
Je ne sais pas du tout intégré la méthode, mais vous pouvez simplement utiliser linq:
parameterList
est déjà une Liste, comme il inutilement de créer une nouvelle copie. Dans ce cas, utilisez laRemoveAll
méthode que d'autres suggèrent.Array
.La méthode RemoveAll devrait faire l'affaire:
La méthode
OfType()
ignorer les valeurs null:OfType
sélectionne les objets d'un certain type, ne pas penser qu'il ne comprendra pasnull
valeurs ... Donc je suis un peu las d'introduire cela dans mon propre code.Facile et sans LINQ:
List
la classe, juste à côté deRemoveAll
, je vous le recommandons, pour plus de clarté. Si la performance qui est arrivé à être crucial, alors vous pouvez aller avec cette approche (bien que je serais de supprimer les crochets et probablement ajouter un commentaire pour ignorer les développeurs).RemoveAll
reçu unPredicate
, de sorte que vous devriez utiliserRemoveAll(x => x == null)
, comme on le voit dans l'acceptation et de la Marque de Bell réponse.Il y a un autre simple et élégant option:
Cela permettra d'éliminer tous les éléments qui ne sont pas de type
EmailParameterClass
qui sera bien évidemment de filtrer les éléments de typenull
.