我有任务。加载新的加载列表时需要生成编号的任务。我做了一个公式化器,其中的字段称为“ LoadingListNumber”。我需要的是以04/0001/19(月/ LoadingListNumber /年)格式生成此数字。新记录将加载数字0001。因此,如果您有新记录,它将是0001,另一个记录是0002,0010,等等。我知道如何生成月份和年份,但是不会生成此数字:/
我已经用这句话和年份生成了月份。
NumberOfLoadingList = string.Format(DateTime.Now.ToString("MM") + "/" + DateTime.Now.Year.ToString("YY"));
我真的需要技巧或建议,如何生成数字。谢谢。
答案 0 :(得分:1)
使用padding
和一个简单的loop
在其中生成记录:
for(int i = 1; i < 100; i++)
{
Console.WriteLine(i.ToString().PadLeft(4, '0'));
}
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
[...]
0099
答案 1 :(得分:0)
我会做的事情与ALFA建议的有所不同。
这是控制台应用程序的完整示例,但是我敢肯定,您可以在这里看到我要执行的操作。
using System;
using System.Collections.Generic;
public class Program
{
// This is a list of all your previous numbers
// this could come from database or calculated somewhere in your application
private static List<int> numbersList = new List<int>();
public static void Main()
{
string NumberOfLoadingList;
for(var i=0; i<10; i++)
{
NumberOfLoadingList = string.Format("{0}/{1:0000}/{2}", DateTime.Now.ToString("MM"), GenerateNewNumber(), DateTime.Now.ToString("yy"));
Console.WriteLine(NumberOfLoadingList);
}
}
private static int GenerateNewNumber()
{
int number = 0;
while(true)
{
// Make sure the number is unique
if (!numbersList.Contains(++number))
{
numbersList.Add(number);
return number;
}
}
}
}
您可以在这里尝试:https://dotnetfiddle.net/mtT1MS
此应用程序的输出为:
04/0001/19
04/0002/19
04/0003/19
04/0004/19
04/0005/19
04/0006/19
04/0007/19
04/0008/19
04/0009/19
04/0010/19