1. 程式人生 > 實用技巧 >.net工具類——獲取編碼(生成隨機數)

.net工具類——獲取編碼(生成隨機數)

.net工具類——獲取編碼(生成隨機數)

  1. GetNumber:獲取編碼。年月日+八位隨機數
  2. GetNumber2:獲取編碼。隨機數
  3. GenerateCode:獲取編碼。包含大寫英文和數字、去掉字母I和O
  4. GetCodePerfix:獲取編碼的字首,年月(格式如:AK,表示2018年11月)

        /// <summary>
        /// 獲取編碼。年月日+八位隨機數
        /// </summary>
        /// <returns></returns>
        public static string
GetNumber() { byte[] buffer = Guid.NewGuid().ToByteArray(); var ram = BitConverter.ToInt64(buffer, 0); var str = string.Format("{0}{1}", Utils.GetRamCode2(), ram.ToString().Substring(0, 8)); return str; //var str = string.Format("{0}{1}", Utils.GetRamCode2(), Utils.Number(6, true));
//return str; } /// <summary> /// 獲取編碼。隨機數 /// </summary> /// <returns></returns> public static string GetNumber2(int Length) { byte[] buffer = Guid.NewGuid().ToByteArray(); var ram = BitConverter.ToInt64(buffer, 0
); var str = string.Format("{0}", ram.ToString().Substring(0, Length)); return str; } /// <summary> /// 獲取編碼。年月日+八位隨機數 /// </summary> /// <returns></returns> public static string GetNumber(List<string> listNumber) { string Number = GetNumber(); int i = 0; while (true) { ++i; if (listNumber.Contains(Number)) { Number = GetNumber(); } else { break; } if (i > 10) { LogHelper.WriteLog("GetNumber已經執行了{i}次!"); } } return Number; } /// <summary> /// 獲取編碼。隨機數 /// </summary> /// <returns></returns> public static string GetNumber2(int Length, List<string> listNumber) { string Number = GetNumber2(Length); int i = 0; while (true) { ++i; if (listNumber.Contains(Number)) { Number = GetNumber2(Length); } else { break; } if (i > 10) { LogHelper.WriteLog("GetNumber已經執行了{i}次!"); } } return Number; } /// <summary> /// 包含大寫英文和數字、去掉字母I和O /// </summary> private static char[] constant = { '0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z' }; /// <summary> /// 獲取編碼。包含大寫英文和數字、去掉字母I和O /// </summary> /// <returns></returns> public static string GenerateCode(int Length) { Thread.Sleep(10); StringBuilder newRandom = new StringBuilder(34); Random rd = new Random(); for (int i = 0; i < Length; i++) { newRandom.Append(constant[rd.Next(34)]); } return newRandom.ToString(); } /// <summary> /// 獲取編碼。包含大寫英文和數字、去掉字母I和O /// </summary> /// <returns></returns> public static string GenerateCode(int Length, List<string> listNumber) { string Number = GenerateCode(Length); int i = 0; while (true) { ++i; if (listNumber.Contains(Number)) { Number = GenerateCode(Length); } else { break; } if (i > 10) { LogHelper.WriteLog($"GenerateCode已經執行了{i}次!"); } } return Number; } /// <summary> /// 獲取編碼的字首,年月(格式如:AK,表示2018年11月) /// </summary> /// <returns></returns> public static string GetCodePerfix() { var dtNow = DateTime.Now; int thisYear = dtNow.Year; int thisMonth = dtNow.Month; int year = 'A' + (thisYear - 2018);//從2018年開始 int month = 'A' + (thisMonth - 1);//從一月開始 return (char)year + "" + (char)+month; }