C#利用時間和隨即字符串創建唯一的訂單編號


本文介紹了利用時間和隨機字符串組合生成唯一訂單號的示例,從而保證訂單號不會重復,希望能夠對大家有所幫助。

使用RNGCryptoServiceProvider類創建唯一的最多8位數字符串,再在前面拼接上年月日時分秒產生的字符串,最大限度的保證生成的字符串是唯一的。

大家也可以根據自己的需求修改,日期可以取值到毫秒,這樣更能保證生成的字符串是唯一的。

private static string GetUniqueKey()
{
  int maxSize = 8;
  int minSize = 5;
  char[] chars = new char[62];
  string a;
  a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  chars = a.ToCharArray();
  int size = maxSize;
  byte[] data = new byte[1];
  RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
  crypto.GetNonZeroBytes(data);
  size = maxSize;
  data = new byte[size];
  crypto.GetNonZeroBytes(data);
  StringBuilder result = new StringBuilder(size);
  foreach (byte b in data)
  {
    result.Append(chars[b % (chars.Length - 1)]);
  }
  return result.ToString();
}

然后調用方法,如下做了演示,每次產生的結果都不一樣

for (int i = 0; i < 10; i++)
{
  string str = string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), GetUniqueKey());
  Console.WriteLine(str);
}
Console.ReadKey();

本文轉載自https://www.jb51.net/article/81606.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM