我有一个看起来像这样的字符串:
A5050MM
我想要实现的是将字符串的末尾附加为:
A5050MM01
A5050MM02
...
目前,我正在按照以下步骤进行操作:
string sn = "A5050MM";
for (int i = 0; i <= 99; i++)
{
string appendVal = i < 10 ? "0" + i : i.ToString();
string finalsn = string.Concat(sn, appendVal);
Console.WriteLine(finalsn);
}
这有效,但是如您所见,我正在对"0"
进行硬编码,因为如果不这样做,输出将是A5050MM1, A5050MM2 ...
直到9。
我的问题是没有"0"
无需硬编码即可实现此 的另一种方法,或者这是我唯一必须遵循的方法吗?
在此先感谢您的帮助。
答案 0 :(得分:7)
尝试使用格式(请注意d2
格式字符串-至少 2 位数字):
for (int i = 0; i <= 99; i++)
{
// sn followed by i which has at least 2 digits
string finalsn = $"{sn}{i:d2}";
Console.WriteLine(finalsn);
}
答案 1 :(得分:5)
您可以使用ToString
的重载,其格式如下:
string sn = "A5050MM";
for (int i = 0; i <= 99; i++)
{
string finalsn = string.Concat(sn, i.ToString("00"));
Console.WriteLine(finalsn);
}
答案 2 :(得分:0)
您也可以在toString liek中使用D2
string sn = "A5050MM";
for (int i = 0; i <= 99; i++)
{
string finalsn = string.Concat(sn, i.ToString("D2"));
Console.WriteLine(finalsn);
}
答案 3 :(得分:0)
您可以使用PadLeft功能
string sn = "A5050MM";
for (int i = 0; i <= 99; i++)
{
string finalsn = sn + i.ToString().PadLeft(2, '0');
Console.WriteLine(finalsn);
}
答案 4 :(得分:0)
Enumerable.Range(0, 99)
.Select(x => String.Format("A5050MM{0:d2}", x))
.ToList()
.ForEach(x => Console.WriteLine(x));