GUID转换
/// <summary> /// 获取GUID的方法(默认是有连接符的32位数字) /// </summary> /// <param name="gUIDType">GUID的生成类型</param> /// <returns>返回GUID的字符串</returns> public string GetGUID(GUIDType gUIDType=GUIDType.D) { string tmpGUID=string.Empty; switch (gUIDType) { case GUIDType.N: //标识符N的生成格式(没有连接符的32位数字) tmpGUID = Guid.NewGuid().ToString(GUIDType.N.ToString()); break; case GUIDType.D: //标识符N的生成格式(有连接符的32位数字) tmpGUID = Guid.NewGuid().ToString(GUIDType.D.ToString()); break; case GUIDType.B: //标识符N的生成格式(有连接符和花括号的32位数字) tmpGUID = Guid.NewGuid().ToString(GUIDType.B.ToString()); break; case GUIDType.P: //标识符N的生成格式(有连接符和括号的32位数字) tmpGUID = Guid.NewGuid().ToString(GUIDType.P.ToString()); break; case GUIDType.X: //标识符N的生成格式(四个十六进制值用大括号括起来,其中第四个值是八个十六进制值的子集,这些值也用大括号括起来) tmpGUID = Guid.NewGuid().ToString(GUIDType.X.ToString()); break; default: break; } return tmpGUID; } //五种生成GUID的枚举 public enum GUIDType { N, D, B, P, X, }
生成16位的GUID
/// <summary> /// 根据GUID生成16位的唯一ID /// </summary> /// <returns></returns> public string GUIDTO16() { long lg = 1; foreach (byte b in Guid.NewGuid().ToByteArray()) { lg *= ((int)b+1); } string tmp = string.Format("{0:x}",lg-DateTime.Now.Ticks); return tmp; }
生成22位的唯一数字
/// <summary> /// 生成22位的唯一数字,并发可用 /// </summary> /// <returns></returns> public string GetUniqueIDTO22() { System.Threading.Thread.Sleep(1); //保证yyyyMMddHHmmssffff唯一 Random rd = new Random(BitConverter.ToInt32(Guid.NewGuid().ToByteArray(),0)); string strUniqueID = DateTime.Now.ToString("yyyyMMddHHmmssffff")+rd.Next(1000,9999); return strUniqueID; }
原文链接:
https://blog.csdn.net/xiaochenXIHUA/article/details/104038369
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?