Ist in .Net für C # eine Standardmethode definiert, mit der alle Elemente in einer Liste entfernt werden können null
?
List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
Angenommen, einige der Parameter sind null
: Ich kann es nicht im Voraus wissen und möchte sie aus meiner Liste entfernen, damit sie nur Parameter enthält, die nicht null sind.
Ich kenne keine eingebaute Methode, aber Sie könnten einfach linq verwenden:
quelle
parameterList
es sich bereits um eine Liste handelt, da unnötigerweise eine neue Kopie erstellt wird. Verwenden Sie in diesem Fall dieRemoveAll
Methode, wie andere vorschlagen.Array
.Die RemoveAll-Methode sollte den Trick machen:
quelle
Die Methode
OfType()
überspringt die Nullwerte:quelle
OfType
gewisser Weise ist dies ein guter Ansatz, aber es überrascht den Entwickler, der nur denkt, dass er Objekte eines bestimmten Typs auswählt, ohne zu glauben, dass er keinenull
Werte enthält ... Ich bin also etwas müde, dies einzuführen in meinen eigenen Code.quelle
Einfach und ohne LINQ:
quelle
List
Klasse direkt nebenRemoveAll
, daher würde ich diese aus Gründen der Klarheit empfehlen. Wenn die Leistung entscheidend ist, können Sie diesen Ansatz wählen (obwohl ich die Klammern entfernen und wahrscheinlich einen Kommentar für ahnungslose Entwickler hinzufügen würde).RemoveAll
erhielt einePredicate
, so sollten Sie verwendenRemoveAll(x => x == null)
, wie in der akzeptierten und Mark Bells Antwort zu sehen.Es gibt noch eine andere einfache und elegante Option:
Dadurch werden alle Elemente entfernt, die nicht vom Typ sind,
EmailParameterClass
wodurch offensichtlich alle Elemente vom Typ herausgefiltert werdennull
.Hier ist ein Test:
quelle
EmailParameterClass
und nur einen Wert gleich habennull
?