我正在開發使用ASP.NET MVC 4和實體框架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
,因爲這將意味着我們有太多的錯誤,哈哈。我只是想在可用數字的限制範圍內保證安全。也許我們可以在解決問題後使用重複使用票號的方法。但是,我不知道我對重用的感覺如何,因爲它可能導致稍後提及文檔時出現含糊不清的情況。
考慮到這一套的大小,這是最有效的方法去擁有唯一的門票號碼?
我不知道這是否是一種可能的解決方案,但是您可以使用在DB上插入記錄時生成的相同身份編號(如果您使用IDENTITY作爲表的主鍵),然後格式化以您想要的任何方式生成身份號碼(例如,TN0000001)。這樣,您不需要手動生成票號。 – scubaFun