Existe-t-il une méthode par défaut définie dans .Net pour C # pour supprimer tous les éléments d'une liste qui le 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 souhaite les supprimer de ma liste afin qu'elle ne contienne que des paramètres qui ne sont pas nuls.
Je ne connais aucune méthode intégrée, mais vous pouvez simplement utiliser linq:
la source
parameterList
s'agit déjà d'une liste, car cela créera inutilement une nouvelle copie. Dans ce cas, utilisez laRemoveAll
méthode comme d'autres suggèrent.Array
.La méthode RemoveAll devrait faire l'affaire:
la source
La méthode
OfType()
ignorera les valeurs nulles:la source
OfType
sélectionne des objets d'un certain type, sans penser qu'il n'inclura pas denull
valeurs ... Donc je suis un peu fatigué d'introduire ceci dans mon propre code.la source
Facile et sans LINQ:
la source
List
classe juste à côtéRemoveAll
, donc je recommanderais celle-là pour plus de clarté. Si les performances s'avéraient cruciales, vous pouvez adopter cette approche (même si je supprimerais les crochets et ajouterais probablement un commentaire pour les développeurs inconscients).RemoveAll
a reçu unPredicate
, vous devez donc utiliserRemoveAll(x => x == null)
, comme indiqué dans la réponse acceptée et de Mark Bell.Il existe une autre option simple et élégante:
Cela supprimera tous les éléments qui ne sont pas de type,
EmailParameterClass
ce qui filtrera évidemment tous les éléments de typenull
.Voici un test:
la source
EmailParameterClass
et n'auront-elles qu'une valeur égale ànull
?