如何在没有数据库的情况下在 C# 中生成唯一编号?
(最多 17 位数字)。
编辑:仅限数字。
最佳答案
你可以看看Twitter的开源Snowflake project寻求灵感,这解决了类似的问题。它是用 Scala 编写的,但简化版本用 C# 编码非常简单。
前提是获取当前时间戳,并将其按位左移,留下右侧位可用于简单的序列号,每次时间戳递增时,该序列号都会重置为 0。
通过调整位长度并改变时间戳的粒度(例如,决定使用秒还是毫秒),您应该能够非常简单地生成可以容纳 17 位数字的内容。
关于c# - 无需数据库即可生成唯一编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4408169/