C#應用時光和隨即字符串創立獨一的定單編號。本站提示廣大學習愛好者:(C#應用時光和隨即字符串創立獨一的定單編號)文章只能為提供參考,不一定能成為您想要的結果。以下是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();