问题描述
我可以将整个列表单元格更改为一个,但是我不知道如何仅更改单元格的第三个字符。
这两个不起作用:
list[index].CELL_A.Substring(2,1) = 'd';
list[index].CELL_A.ElementAtOrDefault(2) = 'd'
但是,保存整个单元格的方法有效:
liste[index].CELL_A = "Text";
解决方法
您可以使用StringBuilder
来解决您的问题(也可以使用charArray
),我将使用StringBuilder
...
StringBuilder sb = new StringBuilder(list[index]);
sb[2] = 's';
list[index] = sb.ToString();
...或带有Array of Chars
:
char[] charArr = list[index].ToCharArray();
charArr[2] = 's';
list[index] = new string(charArr);
您不能直接修改字符串对象,因为它们是不可变的对象。
实际上,在两种解决方案情况下,我都向您展示了list[index]
元素将指向新的修改后的字符串对象,并且您将“丢失”旧字符串(list [index]将指向包含新的修改值)。