我正在开发一个票务系统,用于使用 ASP.NET MVC 4 和 Entity Framework 5 跟踪错误和软件更改。我需要一种方法来从一组可能的数字中选择一个唯一的数字。我的想法是创建一组可能的数字,并在这些数字被使用并分配给支持票时标记这些数字。
我有此代码用于生成所有可能的票号以供选择,但我希望有前导零,以便所有票号具有相同的长度:
public static class GenerateNumber
{
private static IEnumerable<int> GenerateNumbers(int count)
{
return Enumerable.Range(0, count);
}
public static IEnumerable<string> GenerateTicketNumbers(int count)
{
return GenerateNumbers(count).Select(n => "TN" + n.ToString());
}
}
我希望输出是
IEnumerable<string> ticketNumbers = GenerateNumber.GenerateTicketNumbers(Int32.MaxValue);
这样的:
TN0000000001
。
.
.
TN2147483647
希望我们不需要那么大的东西,Int32.MaxValue
因为这意味着我们有太多的错误哈哈。我只是想安全,而不是对可用数字的限制感到抱歉。或许我们可以在解决票号后使用重新使用票号的方法。但是,我不知道我对重用的感觉如何,因为它可能会导致稍后引用文档时产生歧义。
考虑到这个集合的大小,这是获得唯一票号的最有效方法吗?