如果int number<将0粘贴到字符串10

时间:2016-10-17 07:41:11

标签: c# tostring string.format

我得到了一些for (int countDur = 0; countDur<= 51; countDur++) { string excelFieldMember = $"N7{countDur}"; string excelFieldNonMember = $"N8{countDur}"; } ,这些字段的名称来自700-751和800-851。现在,我想得到结果并存储它们。

countDur

当索引countDur = 0小于10时会发生异常,因为700的结果不是70,而是if(countDur < 10) ,依此类推。

所以我用了

string.Format()

但我认为有一种更明智的方法可以实现这一目标。我知道有一个IoString()方法,因为字段是int值,我有一个countDur方法,我可以为此粘贴一个参数。

我的问题是,我需要将哪些内容粘贴为参数?我在C#文档中找不到它。

如果该值低于10,我希望在索引{{1}}被粘贴之前写入0。

3 个答案:

答案 0 :(得分:2)

你想要这个:

for (int countDur = 0; countDur<= 51; countDur++)
{
    string excelFieldMember = $"N7{countDur:D2}";
    string excelFieldNonMember = $"N8{countDur:D2}";
}

这会使用尾随零填充数字,以便您获得700而不是70

MSDN: The Decimal ("D") Format Specifier

答案 1 :(得分:1)

虽然您正在寻找使用ToString的方法,但为什么不从您需要的索引开始for循环,而不是从0开始:

for (int countDur = 700; countDur <= 751; countDur++)
{
    string excelFieldMember = $"N{countDur}";
    string excelFieldNonMember = $"N{countDur+100}";
}

无论如何,使用&#34;魔数&#34;如果字段改变,则容易出错。了解如何获取值而不是将其存储为循环硬编码。 (对于非成员字段,+100也是如此)

答案 2 :(得分:0)

试试这个,我认为这就是你需要的东西

string excelFieldMember = $"N7{countDur.ToString("D2")}";
string excelFieldNonMember = $"N8{countDur.ToString("D2")}";