5 Stimmen

C# String Array Ersetzen letztes Element

Ich habe ein String-Array, das aus einem gesplitteten String stammt

string[] newName= oldName.Split('\\');

newName.Last().Replace(newName.Last(), handover);

Warum ersetzt dies nicht mein letztes Element im Array?

last() kommt von der Verwendung von linq

Grüße

13voto

Jon Skeet Punkte 1325502

Aufruf von string.Replace ändert die vorhandene Zeichenkette nicht - Zeichenketten sind unveränderlich.

Stattdessen gibt sie eine neu mit den entsprechenden Ersetzungen. Allerdings verwenden Sie den Rückgabewert nicht, so ist es im Grunde ein No-op.

Sie müssen das Array-Element selbst ändern, um auf eine andere Zeichenfolge zu verweisen. Etwas wie dies:

newName[newName.Length - 1] = handover;

7voto

picolino Punkte 3047

Außerdem, beginnend mit .NET Core 3.0 (und .NET Standard 2.1 ) können Sie verwenden Index Typ, um Array-Elemente (wie Strings) vom Ende her zu erhalten/zu setzen.
Siehe Beispiel unten:

newName[^1] = handover;

Siehe docs für zusätzliche Informationen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X