C#PadLeft无法正常工作

时间:2018-07-02 15:42:51

标签: c# winforms

我有一个问题,要从SQL提取一个数字字符串并将其放入excel,但是excel格式化该数字时不能将其前导零。

我编写的另一个程序读取excel并将其放入pdf。我决定在第二个程序中重新添加丢失的前导零。

我正在使用.PadLeft执行此操作,并遇到了一些错误。为了文档起见,我将添加到SO中发现的这个问题并予以回答。 这是我的问题:

我需要数字字符串为10位,前面的零到10位。

我有来自Excel的数字77776666,它们应该是0077776666(10位数字) 这是DIDN无法正常工作的地方。它没有附加任何零:

  string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");
  insuranceID.PadLeft(10, '0');

2 个答案:

答案 0 :(得分:3)

要使此代码正常工作,实际上我必须像这样编写代码:

string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");
insuranceID = insuranceID.PadLeft(10, '0');

它必须将代码的赋值部分放在.PadLeft位的前面。

我在SO上没有找到答案,只是找到了答案。我希望这可以帮助别人。

答案 1 :(得分:0)

在C#中,字符串是不可变的,因此简单地声明string.PadLeft(x, '0')无效。

尝试以下方法:

string insuranceID = Convert.ToString(xlRange.Cells[i, 21].Value2 ?? "");   
insuranceID = insuranceID.PadLeft(10, '0');

为了节省您的时间,字符串的不变性在许多字符串方法中也发挥了作用,例如string.Replace()string.ToUpper()string.ToLower()等。