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


posted @   獠牙  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示