唯一標識符
回答
嗯,它不會像真正的Guid那樣獨一無二,但你可以使用隨機生成每個數字。一定要使用專用靜態隨機對象,以避免得到相同的隨機序列:
private static m_random as new System.Random();
public string MySpecialID()
{
return string.Format("{0}{1}{2}{3}{4}-{5}{6}{7}{8}{9}",
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10),
m_random.Next(0, 10));
}
你也可以生成兩個隨機數介於0到99999之間,填充零(使用格式)?我覺得會有分佈差異,但我的大腦在凌晨4點不起作用。 – Sapph 2010-04-17 08:17:23
經過120,000次插入後,該算法的碰撞機率有超過50%。 – 2010-04-17 09:03:43
我要生成與以下格式.NET的唯一標識符:XXXXX-XXXXX其中x是一個數字{ 0-9}
好的,沒問題。我們不需要爲此編寫程序。我們只會親手做。
00000-00000是具有該格式的唯一標識符。完成。
哦,你想要多一個?那麼,你可能應該在問題陳述中說過。 :)
該語言中有100億個字符串,並且按順序生成它們是微不足道的。因此,爲您的第一個唯一標識符生成00000-00000。然後00000-00001爲您的第二個唯一標識符。然後00000-00002爲您的第三個唯一標識符。等等。您將能夠以這種方式生成100億個唯一標識符;你所要做的就是跟蹤哪一個是以前生成的最高值。
不要傻,使用自動增量,如果你想要完成像你所說的那樣微不足道的事情。這不是一個答案。事實上它是一個笑話。 – 2010-04-18 12:01:00
我向你保證,這是一個答案,並不愚蠢。 – 2010-04-18 15:18:11
這在程序運行之間創建相同ID的可能性要高得多。您必須確保在世界各地運行的程序的所有實例都知道最近的ID是什麼。這只是一個非常具體的(很可能是假想的)情況下的好答案。 – 2010-04-18 16:31:19
- 1. YouTube的唯一標識符
- 2. Solaris/Unix唯一標識符
- 3. UITableViewCell唯一標識符?
- 4. 唯一設備標識符
- 5. PC的唯一標識符
- 6. Mac的唯一標識符?
- 7. ALAsset唯一標識符
- 8. iCloud唯一標識符
- 9. 唯一標識符策略
- 10. MySQL唯一標識符
- 11. NSManagedObject的唯一標識符
- 12. Windows唯一標識符?
- 13. XHTML唯一標識符
- 14. 唯一文件標識符
- 15. SlideMaster的唯一標識符
- 16. createElement唯一標識符
- 17. 使用一些唯一標識符標識Microsoft樂隊
- 18. 唯一標識Mailitem
- 19. 帶唯一標識符的StringVar回調?
- 20. Java JLabel - 添加唯一標識符
- 21. 索引/聯行的唯一標識符
- 22. 谷歌OpenID唯一標識符問題
- 23. 唯一記錄標識符值
- 24. 亂碼的唯一標識符SQLite中
- 25. 唯一標識符在IOS 5
- 26. 'mailto'鏈接中的唯一標識符
- 27. 本體中的唯一標識符
- 28. ListActivity項目唯一標識符
- 29. GWT唯一硬件標識符
- 30. 用戶的唯一標識符
請定義「唯一」的範圍。 – Armin 2010-04-17 08:03:51
聞起來像功課。在這裏獲得幫助的最佳實踐是向你展示你已經完成的事情。來吧,試試看,這裏的人會讓你擺脫困境。 – 2010-04-17 08:08:47
Alex,閱讀此博客條目。它會嚇到你sh **** ss:http://blogs.msdn.com/ericlippert/archive/2010/03/22/socks-birthdays-and-hash-collisions.aspx – 2010-04-18 17:16:14