2013-03-04 86 views
-2

我正在尋找高效的隨機生成器。我更喜歡成爲字符串/整型生成器,儘管它並不重要。我需要複製圖像並將其名稱保存在數據庫中。因爲我從數據庫中提取名稱,所以不需要有一些有意義的名稱,但是因爲我需要將圖像複製到目錄中,所以我必須爲我的圖像名稱選擇唯一的名稱。因爲每個檢查都是對數據庫的新查詢,所以我需要一些高效的隨機生成器,以便在獲取唯一名稱之前,我需要最少數量的查詢。我知道有很多算法,但快速搜索並沒有幫助我找到一個算法。我不想要那些會過度殺傷的東西,畢竟我沒有加密任何我只需要唯一名稱的東西,但仍然當圖像數量變大時,我不希望生成新的唯一名稱很多時間。C# - 高效的隨機字符串/ int生成器

+2

爲什麼它必須是隨機的?如果數據庫具有自動遞增主鍵,則只需使用該鍵作爲文件名。 – David 2013-03-04 13:08:23

+0

使用散列是任何隨機更好的主意。作爲獎勵,你會得到異常(假設散列是唯一的關鍵字段) - 重複發現..耶! – Sinatr 2013-03-04 13:51:13

回答

6

嘗試

string uniqueName = Guid.NewGuid().ToString("N"); 
0

除了Matthew's answer你也可以嘗試:

string uniqueName = System.DateTime.Now.Ticks.ToString(); 

由於Ticks總會長大,你有獨特的價值,一個進程內至少做時。

當尋找一個整數,而不是一個字符串,它當然是:

long uniqueValue = System.DateTime.Now.Ticks; 
+1

注意,'Ticks'只會每隔幾毫秒改變一次! – 2013-03-04 13:40:09

-1

一個真正的隨機數生成器,使用RNGCryptoServiceProvider。 看看這個例子:Random Number Generation

+0

我們通常喜歡看到更多,然後只是一個鏈接到另一個網站,可能會或可能不會在一年後工作。 – 2013-03-04 14:58:56