Alex Rivera | Logout

Edit characters in a String in C#

Asked 2010-05-28T17:46:10.113
14

What's the cleanest way of editing the characters in a string in C#?

What's the C# equivalent of this in C++:

std::string myString = "boom";
myString[0] = "d";
Edit
Report

2 Answers

5

You can't since strings are immutable.

You could always roll your own extension method to do something similar:

public static string ReplaceAtIndex(this string original, 
    int index, char character)
{
    char[] temp = original.ToCharArray();
    temp[index] = character;
    return new String(temp);
}

And call it like:

string newString = myString.ReplaceAtIndex(0, 'd');
answered 2010-05-28T17:52:49.147
4

As Brian said, use a StringBuilder, instead:

string myString = "boom";
StringBuilder myStringBuilder = new StringBuilder(myString);
myStringBuilder[0] = 'd';
// Whatever else you're going to do to it

Whenever you need the string again, call myStringBuilder.ToString()

answered 2010-05-28T18:01:59.197

Your Answer