2015-02-12 44 views

回答

0
Random random = new Random(); 
string ID = DateTime.Today.ToString("yyMMdd") + random.Next(1, 9999).ToString().PadLeft(4, '0'); 

當然與ID生成這樣,你就必須檢查,如果與ID的項目生成一個新的ID後已經存在,直到找到一個生成一個新的獨一無二的。你也只能創建9999個唯一的ID,所以更好的確保這符合你的需求。

我想你會更好的簡單使用Guids。

1

這個問題還不清楚。請澄清您的問題並添加更多詳細信息和上下文代碼。 你在哪裏需要這些ID?你會將它們保存到數據庫嗎?如果您在一天內要求超過9999次ID,會發生什麼情況?如果應用程序重新啓動會發生什麼?

這裏是一個非常簡單的實現:

public static class IdGenerator 
{ 
    private static int lastId = 0; 
    private static DateTime lastDate = DateTime.Now; 

    public static string NewId() 
    { 
     // If last used date is different than today or last id is 9999 restart the counter. 
     if (lastDate.Date != DateTime.Now.Date || lastId == 9999) 
      lastId = 0; 

     lastDate = DateTime.Now; 
     return string.Format("{0:yyMMdd}{1:0000}", lastDate, ++lastId); 
    } 
} 

// Usage 
IdGenerator.NewId() 

注意,此類不保證唯一的ID,如果你要求在一天ID超過9999次,或者如果應用程序重新啓動。您應該爲上次使用的ID和上次使用的日期(不是靜態成員)使用一些持久性存儲。

相關問題