【问题标题】:How to change the third character of a list cell如何更改列表单元格的第三个字符
【发布时间】:2020-09-25 08:11:36
【问题描述】:
我可以将整个列表单元格更改为一个,但我不知道如何仅更改单元格的第三个字符。
这两个不起作用:
list[index].CELL_A.Substring(2,1) = 'd';
list[index].CELL_A.ElementAtOrDefault(2) = 'd'
但是,你保存整个单元格的地方是有效的:
liste[index].CELL_A = "Text";
【问题讨论】:
标签:
c#
list
visual-studio
bindingsource
【解决方案1】:
您可以使用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] 将指向一个包含新修改值)。