c# - 无需数据库即可生成唯一编号

标签 c# asp.net algorithm numbers uniqueidentifier

如何在没有数据库的情况下在 C# 中生成唯一编号?

(最多 17 位数字)。

编辑:仅限数字。

最佳答案

你可以看看Twitter的开源Snowflake project寻求灵感,这解决了类似的问题。它是用 Scala 编写的,但简化版本用 C# 编码非常简单。

前提是获取当前时间戳,并将其按位左移,留下右侧位可用于简单的序列号,每次时间戳递增时,该序列号都会重置为 0。

通过调整位长度并改变时间戳的粒度(例如,决定使用秒还是毫秒),您应该能够非常简单地生成可以容纳 17 位数字的内容。

关于c# - 无需数据库即可生成唯一编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4408169/

相关文章:

C# ASP.NET Azure 移动服务 InvalidOperationException

c# - 从 MySQL 表接收 DownloaLink

jquery 对话框在 asp.net 按钮上关闭

asp.net - 我想根据我从数据库获取的项目和图像的数量从 C# 代码隐藏创建 Bootstrap 图像容器和模式

c# - WPF 数据绑定(bind) - 中间对象的 Getter/Setter 未命中

c# - C# 编译器如何优化代码片段?

javascript - 将 Repeater Container.ItemIndex 传递给 Javascript 函数

performance - 算法 : how do divide-and-conquer and time complexity O(nlogn) relate?

bool 可满足性的类调度[多项式时间缩减]最后一部分

algorithm - 根据反权重从列表中选择一个随机元素