LINQ zum Anhängen an einen StringBuilder aus einem String []

6

Ich habe ein String-Array, das ich über LINQ zu einem String-Builder hinzufügen möchte.

Was ich im Grunde sagen will ist: "Für jedes Element in diesem Array fügen Sie eine Zeile an diesen StringBuilder an."

Ich kann das ganz leicht mit einer foreach-Schleife machen, aber der folgende Code scheint nichts zu tun. Was vermisse ich?

%Vor%

Wo das geht:

%Vor%     
Jamie Dixon 10.11.2009, 14:10
quelle

3 Antworten

17

Wenn Sie darauf bestehen, LINQy zu machen:

%Vor%

Alternativ, wie Lukas in einem Kommentar auf einen anderen Beitrag hingewiesen hat, könnten Sie sagen:

%Vor%

Der Grund, dass Select nicht funktioniert, ist, dass Select für die Projektion und das Erstellen einer IEnumerable der Projektion dient. Also die Codezeile

%Vor%

iteriert nicht über den StringArray Aufruf stringBuilder.AppendLine(s) bei jeder Iteration. Stattdessen wird ein IEnumerable<StringBuilder> erstellt, das überzählbar ist.

Ich nehme an, dass Sie sagen könnten

%Vor%

aber das ist wirklich scheußlich.

    
jason 10.11.2009, 14:15
quelle
4

Verwenden Sie die Erweiterungsmethode "ForEach" anstelle von "Select".

%Vor%     
scottrudy 21.10.2010 18:55
quelle
-1
%Vor%

Dabei ist DoForAll eine Erweiterungsmethode:

%Vor%     
vladhorby 10.11.2009 14:12
quelle

Tags und Links