有没有一种简单的方法来在C#中更改字符串中的字符?

Sta*_*Cub 8 c# string char

我想做这个:

string s = "abc";
s[1] = 'x';
Run Code Online (Sandbox Code Playgroud)

s将成为"axc".但是,似乎string [i]只有一个getter并且没有setter.编译器给我以下错误:

"属性或索引器'string.this [int]'无法分配给 - 它是只读的"

我想我可以制作一个循环并改变我想要的字符.但我只是想知道是否有一个简单的方法来做到这一点?为什么没有字符串[i]的setter?

提前致谢.

Cal*_*ers 18

字符串是不可变的,因此您必须创建一个char[]数组,更改它,然后将其重新转换为字符串:

string s = "foo";
char[] arr = s.ToCharArray();
arr[1] = 'x';
s = new string(arr);
Run Code Online (Sandbox Code Playgroud)


JLW*_*low 13

字符串是不可变的,这就是没有setter的原因,但是你可以使用字符串构建器:

StringBuilder s = new StringBuilder("abc");

s[1] = 'x';
Run Code Online (Sandbox Code Playgroud)