Verwenden von LINQ zum Extrahieren von Ints aus einer String-Liste

7

Ich habe List<string> , und einige dieser Strings sind Zahlen. Ich möchte diese Teilmenge in ein List<int> extrahieren.

Ich habe das auf ziemlich ausführliche Weise getan - wie unten - aber ich habe das Gefühl, dass es einen besseren LINQ Weg geben muss, dies zu strukturieren. Irgendwelche Ideen?

%Vor%

Offensichtlich brauche ich keine Lösung - das ist hauptsächlich für meine LINQ-Ausbildung.

    
jlb83 18.01.2012, 13:21
quelle

3 Antworten

23

Du kannst es so machen:

%Vor%

Dies funktioniert, weil die Ausführung von LINQ-Operatoren verzögert ist, was bedeutet:
Für jede Position in myStrs wird zuerst der Code in Where ausgeführt und das Ergebnis in parsed geschrieben. Und wenn TryParse true zurückgegeben hat, wird der Code in Select ausgeführt. Der gesamte Code für ein Element wird ausgeführt, bevor der gesamte Code für das nächste Element ausgeführt wird.

    
Daniel Hilgarth 18.01.2012, 13:24
quelle
7

LINQ- und out -Parameter mischen sich nicht gut. Sie könnten dies tun:

%Vor%     
dtb 18.01.2012 13:25
quelle
0

Da dies für LINQ-Bildung ist ... Wenn Sie wirklich suchen, wie dies mit nur LINQ-Syntax getan werden kann, ist eine andere Option, die Analyselogik in eine Klasse zu verschieben, die das Ergebnis und den Wert einkapselt.

%Vor%

wo Parser so etwas ist ...

%Vor%     
Kerry H 18.01.2012 13:41
quelle

Tags und Links