唯一标识符
回答
嗯,它不会像真正的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