Linq-Methode zur Umwandlung von Nullen in leere IEnumerableT?

8

Ich habe es mit einigen Arrays zu tun, die mir von einer Drittanbieter-API zurückgegeben werden. Manchmal kommen diese als null zurück. Ich bin in der Lage, alles elegant mit LINQ zu handhaben, außer für den Nullfall. Ich habe mir so etwas ausgedacht:

%Vor%

Der Einsatz des Koaleszenzoperators schadet hier ein wenig. Fehle ich etwas von LINQ, das damit umgehen kann?

    
recursive 24.05.2011, 19:06
quelle

4 Antworten

11

Dies ist in der Tat die gleiche Lösung, die Sie haben, aber ich verwende eine Erweiterungsmethode.

%Vor%

Damit enden wir mit:

%Vor%     
Reddog 24.05.2011, 19:10
quelle
2

Sie könnten einfach folgendes schreiben:

%Vor%

Auf diese Weise verschieben Sie das Koaleszieren außerhalb des linq-Ausdrucks, wodurch der Code dichter erscheint.

Sie können den linq-Ausdruck auch einfach überspringen, indem Sie eine bedingte Überprüfung von nonnull durchführen.

    
Simon Stender Boisen 24.05.2011 19:19
quelle
1

Warum nicht etwas effizienteres verwenden wie:

%Vor%     
Tomasz Mikuś 24.05.2011 19:13
quelle
0

Linq erwartet etwas von etwas, auch wenn es leer ist. Vielleicht können Sie versuchen, die Verschmelzung nach dem API-Aufruf zu verschieben?

    
Jay 24.05.2011 19:13
quelle

Tags und Links