Ich möchte diese Zeile teilen:
string line = "First Name ; string ; firstName";
in eine Reihe ihrer zugeschnittenen Versionen:
"First Name"
"string"
"firstName"
Wie kann ich das alles in einer Zeile machen? Folgendes gibt mir den Fehler "Typ void kann nicht konvertiert werden":
List<string> parts = line.Split(';').ToList().ForEach(p => p.Trim());
ForEach
auf der aktuellen Instanz von funktioniertIEnumerable
und zurückgegeben wirdvoid
.Antworten:
Versuchen
Zu Ihrer Information, die Foreach-Methode führt eine Aktion (nimmt T und gibt void zurück) für den Parameter aus, und Ihr Lambda gibt eine Zeichenfolge als Zeichenfolge zurück. Trim gibt eine Zeichenfolge zurück
Die Foreach-Erweiterungsmethode soll den Status von Objekten in der Sammlung ändern. Da Zeichenfolgen unveränderlich sind, hätte dies keine Auswirkungen
Hoffe es hilft; o)
Cédric
quelle
ForEach
ist keine Erweiterungsmethode.Das
ForEach
Methode gibt nichts zurück, daher können Sie dies keiner Variablen zuweisen.Verwenden Sie
Select
stattdessen die Erweiterungsmethode:quelle
Weil p.Trim () eine neue Zeichenfolge zurückgibt.
Sie müssen verwenden:
quelle
Alternativ versuchen Sie dies:
quelle
Hier ist eine Erweiterungsmethode ...
quelle
Versuchen Sie es mit Regex:
quelle
Split gibt den Typ string [] zurück. Schreiben Sie eine Erweiterungsmethode:
Ihre Lösung hat mir gefallen, deshalb habe ich beschlossen, sie zu ergänzen und benutzerfreundlicher zu machen.
quelle
Verwenden Sie Regex
Ergebnis:
Bob
jon
Mann
Francis
Luke
Lee
Bob
Erklären Sie das Muster [,; \ s]: Passen Sie ein Vorkommen von entweder; oder Leerzeichen
quelle