我在c#中有一个代码,如下所示
string s = new string('~',25);
int ind = 5;
s[ind] = 'A';
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误
属性或索引器'string.this [int]'无法分配给 - 它被读取
那么问题是什么,我该如何解决呢?
Jon*_*eet 11
字符串是不可变的 - 您无法更改现有字符串.
两种选择:
使用StringBuilder
,例如
StringBuilder builder = new StringBuilder(new string('~', 25));
builder[5] = 'A';
string result = builder.ToString();
Run Code Online (Sandbox Code Playgroud)从char数组构建一个新字符串:
char[] chars = new string('~', 25).ToCharArray();
chars[5] = 'A';
string result = new string(chars);
Run Code Online (Sandbox Code Playgroud)在这两种情况下,如果需要,您可以填充可变数据而无需构建新的字符串 - 这将涉及更多代码,但可能更有效.
或者,您可以根据另一个答案获取子字符串并将它们连接在一起......基本上有很多方法可以解决这个问题.哪一个适合取决于您的实际用例.
归档时间: |
|
查看次数: |
4556 次 |
最近记录: |