唯一标识符
回答
嗯,它不会像真正的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. 唯一文件标识符
- 2. XHTML唯一标识符
- 3. 唯一标识符策略
- 4. MySQL唯一标识符
- 5. NSManagedObject的唯一标识符
- 6. UITableViewCell唯一标识符?
- 7. SlideMaster的唯一标识符
- 8. PC的唯一标识符
- 9. Mac的唯一标识符?
- 10. 唯一标识Mailitem
- 11. Objective-c iPhone NSTimer唯一标识符
- 12. SQL Server唯一标识符与整数
- 13. Vertica中的全局唯一标识符
- 14. 跨表的唯一标识符
- 15. 谷歌OpenID唯一标识符问题
- 16. 写脚本的唯一标识符?
- 17. 电话唯一标识符差异
- 18. 乱码的唯一标识符SQLite中
- 19. excel中增量唯一标识符
- 20. Android手机的唯一标识符
- 21. Dropbox文件唯一标识符 - RESTful API
- 22. 在TSQL中增加唯一标识符
- 23. Java JLabel - 添加唯一标识符
- 24. 生成条件唯一标识符
- 25. 比较VARCHAR和唯一标识符
- 26. Flash安装的唯一标识符
- 27. 唯一号码标识符生成
- 28. 用户的唯一标识符
- 29. SQL Server全局唯一标识符
- 30. PHP随机唯一标识符
请定义“唯一”的范围。 – 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