c#生成不重复的字符串

来源:互联网 发布:java面试项目经历 编辑:程序博客网 时间:2024/06/04 00:40
using System;namespace DotNet.Utilities{    public class RandomOperate    {        // 一:随机生成不重复数字字符串          private int rep = 0;        public string GenerateCheckCodeNum(int codeCount)        {            string str = string.Empty;            long num2 = DateTime.Now.Ticks + this.rep;            this.rep++;            Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));            for (int i = 0; i < codeCount; i++)            {                int num = random.Next();                str = str + ((char)(0x30 + ((ushort)(num % 10)))).ToString();            }            return str;        }        //方法二:随机生成字符串(数字和字母混和)        public string GenerateCheckCode(int codeCount)        {            string str = string.Empty;            long num2 = DateTime.Now.Ticks + this.rep;            this.rep++;            Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));            for (int i = 0; i < codeCount; i++)            {                char ch;                int num = random.Next();                if ((num % 2) == 0)                {                    ch = (char)(0x30 + ((ushort)(num % 10)));                }                else                {                    ch = (char)(0x41 + ((ushort)(num % 0x1a)));                }                str = str + ch.ToString();            }            return str;        }        #region        /// <summary>        /// 从字符串里随机得到,规定个数的字符串.        /// </summary>        /// <param name="allChar"></param>        /// <param name="CodeCount"></param>        /// <returns></returns>        private string GetRandomCode(string allChar, int CodeCount)        {            //string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,i,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";             string[] allCharArray = allChar.Split(',');            string RandomCode = "";            int temp = -1;            Random rand = new Random();            for (int i = 0; i < CodeCount; i++)            {                if (temp != -1)                {                    rand = new Random(temp * i * ((int)DateTime.Now.Ticks));                }                int t = rand.Next(allCharArray.Length - 1);                while (temp == t)                {                    t = rand.Next(allCharArray.Length - 1);                }                temp = t;                RandomCode += allCharArray[t];            }            return RandomCode;        }        #endregion    }}

0 0
原创粉丝点击