Mark
Mark

Reputation: 3283

C# String Array Replace Last Element

i have a String Array which comes from a splitted String

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

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

Why doesnt this replaces my last element in the Array?

last() comes from using linq

regards

Upvotes: 6

Views: 8925

Answers (2)

picolino
picolino

Reputation: 5444

Also, starting with .NET Core 3.0 (and .NET Standard 2.1) you can use Index type to get/set array elements (like strings) from the end.
See example below:

newName[^1] = handover;

See docs for additional info

Upvotes: 9

Jon Skeet
Jon Skeet

Reputation: 1501043

Calling string.Replace doesn't alter the existing string - strings are immutable.

Instead, it returns a new string, with the appropriate replacements. However, you're not using the return value, so it's basically a no-op.

You need to change the array element itself to refer to a different string. Something like this:

newName[newName.Length - 1] = handover;

Upvotes: 14

Related Questions