C# 如何在生成新记录时生成新编号?
我有一个任务。加载新加载列表时需要生成编号的任务。我做了一个公式,其中的字段名为LoadingListNumber。我需要的是以以下格式生成此编号:04/0001/19 Month/LoadingListNumber/Year。编号0001在其新记录时加载。因此,如果您有新记录,它将是0001,另一个记录00020010等。我知道如何生成月份和年份,但不是这个数字:/ 我已经在这句话中生成了月份和年份C# 如何在生成新记录时生成新编号?,c#,C#,我有一个任务。加载新加载列表时需要生成编号的任务。我做了一个公式,其中的字段名为LoadingListNumber。我需要的是以以下格式生成此编号:04/0001/19 Month/LoadingListNumber/Year。编号0001在其新记录时加载。因此,如果您有新记录,它将是0001,另一个记录00020010等。我知道如何生成月份和年份,但不是这个数字:/ 我已经在这句话中生成了月份和年份 NumberOfLoadingList = string.Format(DateTime.No
NumberOfLoadingList = string.Format(DateTime.Now.ToString("MM") + "/" + DateTime.Now.Year.ToString("YY"));
我真的需要一个提示或建议,如何生成数字。谢谢。使用一个简单的循环生成记录:
for(int i = 1; i < 100; i++)
{
Console.WriteLine(i.ToString().PadLeft(4, '0'));
}
我会做的和阿尔法建议的有点不同 这是一个控制台应用程序的完整示例,但我相信您可以看到我在这里试图做什么
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;
}
}
}
}
创建一个介于1和任意值之间的rand变量,并将其添加到字符串中,或者以你想要的方式构建它。我不知道你想在这里实现什么。你需要1。从给定年份和月份2的现有记录中选择最大数量。增加3。使用它。。。此操作应为原子锁/db Transaction,代码调用DateTime。现在,一年中获取月份和另一年中获取年份的可能性非常小。序列是否重置?当达到9999时是否循环?你打算如何存储/检索最后一个序列?我想他是在寻找如何生成数字,而不是格式。是的,可能是,实际上还不清楚。我将把这个留在这里,以防对他有所帮助,我将等待进一步的信息;i<100;i++Console.WriteLine${i:0000};或者i.toString.000谢谢,这正是我需要的:]
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;
}
}
}
}
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