为什么Insert()方法删除零

时间:2018-10-09 10:27:37

标签: c# .net datatable

我正在尝试将字符串格式化为时间字符串格式。 PadLeft方法有效,但是在该方法之后,我使用Insert方法,由于某种原因,它删除了PadLeft添加的零:

var formatString = data.Rows[i][j].ToString().PadLeft(6, '0');
formatString = data.Rows[i][j].ToString().Insert(1, ":").Insert(4, ":");
data.Rows[i][n] = formatString;

在第二行代码之后,执行Insert方法时,将删除零并添加冒号。

希望我已经彻底解释了

2 个答案:

答案 0 :(得分:4)

.Net中的

String是不可变的。您的第一行将返回一个新字符串,并且不会修改表中的值。因此,您需要继续使用该字符串而不是表中的值。

var formatString = data.Rows[i][j].ToString().PadLeft(6, '0');
formatString = formatString.Insert(1, ":").Insert(4, ":");
data.Rows[i][n] = formatString;

答案 1 :(得分:1)

您在formatString变量中有零,然后在第二行中为该变量分配一个新值,我想您想做些类似的事情:

var formatString = data.Rows[i][j].ToString().PadLeft(6, '0');
formatString = formatString.Insert(1, ":").Insert(4, ":");
data.Rows[i][n] = formatString;