Доступ для записи значения в определённом индексе в string.

Рейтинг: 0Ответов: 2Опубликовано: 14.11.2014
string a = "abc";
a[0] = 'z'; // Ошибка! ... доступ только для чтения.

Вопрос: можно ли сделать доступ для записи в данном случае?

Ответы

▲ 2Принят

Строки в C# неизменяемы, так что напрямую изменить строку нельзя. При любой операции со строкой создаётся новый объект. Вы можете конвертировать строку в массив char'ов, произвести замену, затем из массива снова собрать строку:

string str = "qwerty";
char[] chars = str.ToCharArray();
chars[3] = 'A';
str = new string(chars);

Ещё вы можете использовать класс StringBuilder. В нём переопределён оператор индексации ([]):

string str = "qwerty";
StringBuilder sb = new StringBuilder(str);
sb[3] = 'A';
str = sb.ToString();
▲ 1

Нет.

Пользуйтесь функциями substr, например.