如何更改列表单元格的第三个字符

问题描述

我可以将整个列表单元格更改为一个,但是我不知道如何仅更改单元格的第三个字符。

这两个不起作用:

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]将指向包含新的修改值)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...