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 @ 2024-06-28 09:37  獠牙  阅读(1)  评论(0编辑  收藏  举报