ForEach zu Trim-string-Werte in string-array
Ich fragte mich nur, warum diese ForEach funktioniert nicht, und Blättern Sie die Werte mit Leerzeichen.
string days = "Monday, Tuesday, Wednesday, Thursday, Friday";
string[] m_days = days.Split(',');
m_days.ToList().ForEach(d => { d = d.Trim(); } );
Ich weiß, es gibt andere Wege, dies zu tun, so brauche ich nicht und Antwort gibt.
InformationsquelleAutor David | 2013-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Sie nicht die Neuzuweisung der getrimmten strings.
ForEach
ist nicht Linq, es ist eine Methode derList<T>
. Was Sie tun, ist im Grunde dies:Bitte siehe meine Antwort für eine Erklärung, warum Sie nicht verwenden können
ForEach
für diese Aufgabe.ist nicht Linq, es ist eine Methode der
List<T>
. Bearbeitet meine Antwort.ja, die ignorieren, dass die linq-tag. bedeutet nichts für die Frage sowieso
InformationsquelleAutor Rango
Weisen Sie die Ausgabe der ForEach-um eine neue variable, etwa so:
InformationsquelleAutor baldric
Weil
String.Trim()
nicht ändern, die ursprüngliche Zeichenfolge. Wenn Sie anrufenForEach(d => d.Trim())
erstellen Sie neue getrimmten Strings im Speicher für jedes Element der Liste, aber, dass der string nicht zugeordnet ist überall. Das ist, was Sie tun:Was Sie brauchen, ist
InformationsquelleAutor Sergey Berezovskiy
string.Trim
gibt eine neue string-Instanz. Also müssen Sie irgendwie verwenden die neue Instanz.Sie sind nicht zu tun, dass in Ihrem code.
Außerdem, es ist nicht möglich, mit
ForEach
. Auf den ersten Blick, könnte das folgende funktionieren:Aber, dass ist nicht zu helfen, Sie entweder, weil
d
ist nicht per Referenz übergeben, so dass Sie nur die änderung der lokalen parameter, die übergeben wurden und in Ihrer Stellvertretung und nicht von der Instanz gespeichert in der Liste.Werden Sie wahrscheinlich wollen, dass diese:
Einen alternativen Weg ohne LINQ würde wie folgt Aussehen:
Ok, keine Notwendigkeit, nach weiteren alternativen. Ich kenne die alternativen. Ich glaube ich habe das Missverständnis der Verwendung des ForEach. Ich wollte nur wissen, warum genau die Foreach funktioniert nicht
Gut, das erklärt in meiner Antwort in dem Teil nach dem ersten code-snippet.
InformationsquelleAutor Daniel Hilgarth