好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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();

dy("nrwz");

查看更多关于C#利用时间和随即字符串创建唯一的订单编号的详细内容...

  阅读:45次