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

paste 0 to string if int number < 10

我得到了一些ExcelValues,这些字段是从 700-751 和 800-851 命名的。现在,我想获取结果并存储它们。

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

出现异常,当索引countDur小于10时,因为countDur = 0的结果不是700,则为70,以此类推.

所以我用了

if(countDur < 10)

但我认为有一种更聪明的方法可以达到这个目的。我知道有一个 string.Format() 方法,因为字段是 int 值,所以我有一个 IoString() 方法,我可以在其中粘贴一个参数。

我的问题是,我必须粘贴什么作为参数?我在 C# 文档中找不到它。

如果值小于 10,我希望在粘贴索引 countDur 之前写入 0。

你想要这个:

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

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

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

无论如何,如果字段发生变化,使用"magic numbers"很容易出现错误。查看如何获取值而不是将其存储为循环的硬编码。 (同样适用于非成员字段的 +100

试试这个,我想这就是你需要的

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