C# 如何在生成新记录时生成新编号?

C# 如何在生成新记录时生成新编号?,c#,C#,我有一个任务。加载新加载列表时需要生成编号的任务。我做了一个公式,其中的字段名为LoadingListNumber。我需要的是以以下格式生成此编号:04/0001/19 Month/LoadingListNumber/Year。编号0001在其新记录时加载。因此,如果您有新记录,它将是0001,另一个记录00020010等。我知道如何生成月份和年份,但不是这个数字:/ 我已经在这句话中生成了月份和年份 NumberOfLoadingList = string.Format(DateTime.No

我有一个任务。加载新加载列表时需要生成编号的任务。我做了一个公式,其中的字段名为LoadingListNumber。我需要的是以以下格式生成此编号:04/0001/19 Month/LoadingListNumber/Year。编号0001在其新记录时加载。因此,如果您有新记录,它将是0001,另一个记录00020010等。我知道如何生成月份和年份,但不是这个数字:/

我已经在这句话中生成了月份和年份

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