C# 生成12位无重复的字符串问题

Michael_76549786 2010-05-06 11:08:37
C# 生成12位无重复的字符串 可包含 数字、字母

如果保证长时间无重复呢?请高手赐教 谢谢
...全文
462 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
antiking 2010-05-06
  • 打赏
  • 举报
回复
string ss = System.Guid.NewGuid().ToString();
string s2 = ss.Substring(24, 12);
lsq667 2010-05-06
  • 打赏
  • 举报
回复
短时间并发无重复12位实在太短了
Michael_76549786 2010-05-06
  • 打赏
  • 举报
回复
先谢谢各位 但是现在需求是 必须是 12位无重复的字符串 而且要考虑并发 比如说要是用时间来算
yymmddhhmmss 的话 在同一秒进来的话 也会产生重复啊!
还有没有好的解决方案呢 ? 谢谢 了!

稍后我给各位加分 分不够在加!
q107770540 2010-05-06
  • 打赏
  • 举报
回复
[code=C#]
string s = DateTime.Now.ToString("yyMMddHHmmssfff");
s = s.Substring(1, 12);
/code]
sxiaohui8709253 2010-05-06
  • 打赏
  • 举报
回复
楼主是想做数据表的流水号么?感觉12位有点短

日期(年+月+日)8位在加4位(0001)递增的 这种12位
最好搞到(年+月+日+时+分+秒)这个有14位 在加个6位的(000001)递增的 这样有20位 基本在1秒内 不会产生那么多的记录的
vrhero 2010-05-06
  • 打赏
  • 举报
回复
长时间无重复很容易,时间戳就行...短时间并发无重复12位就太短了...
hjw01592 2010-05-06
  • 打赏
  • 举报
回复
用Guid就可以了
Guid uidID = System.Guid.NewGuid();
threenewbee 2010-05-06
  • 打赏
  • 举报
回复
12位有点短。

guid + md5 取前12位。
q107770540 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 michael_76549786 的回复:]

引用 9 楼 q107770540 的回复:

引用 6 楼 michael_76549786 的回复:

先谢谢各位 但是现在需求是 必须是 12位无重复的字符串 而且要考虑并发 比如说要是用时间来算
yymmddhhmmss 的话 在同一秒进来的话 也会产生重复啊!
还有没有好的解决方案呢 ? 谢谢 了!

稍后我给各位加分 分不够在加!


yymmd……
[/Quote]

哎,超过12位,你可以字符串截取嘛


string s = DateTime.Now.ToString("yyMMddHHmmssfff");
s = s.Substring(2, 12);
天下在我心 2010-05-06
  • 打赏
  • 举报
回复
再结合下单例模式吧
Michael_76549786 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 q107770540 的回复:]

引用 6 楼 michael_76549786 的回复:

先谢谢各位 但是现在需求是 必须是 12位无重复的字符串 而且要考虑并发 比如说要是用时间来算
yymmddhhmmss 的话 在同一秒进来的话 也会产生重复啊!
还有没有好的解决方案呢 ? 谢谢 了!

稍后我给各位加分 分不够在加!


yymmddhhmmss:只是精确到秒
yymmddhhmm……
[/Quote]


yymmddhhmmssfff 已经超过12位了
Joe-xXx 2010-05-06
  • 打赏
  • 举报
回复
时间
GUID
HashTable

组合使用吧
q107770540 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 michael_76549786 的回复:]

先谢谢各位 但是现在需求是 必须是 12位无重复的字符串 而且要考虑并发 比如说要是用时间来算
yymmddhhmmss 的话 在同一秒进来的话 也会产生重复啊!
还有没有好的解决方案呢 ? 谢谢 了!

稍后我给各位加分 分不够在加!
[/Quote]

yymmddhhmmss:只是精确到秒
yymmddhhmmssfff: 已精确到毫秒级了
如果还是担心重复的话,你再结合Random类 一起使用

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧