您的位置:首页 > 编程语言 > C#

C#随机生成n位数字和字母的方法

2008-05-07 16:19 891 查看
C#随机生成n位数字和字母的方法




public class GetRandom




...{


public static int roCount = 0;


private static char[] constant =




...{


'2','3','4','5','6','7','8','9',


'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z',


'A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z'


// 由下面所列的字符抽取,如果为了避免出现一些容易混淆的字符,上面的已经筛选


// '0','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',


// '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'




};


public enum RandomType




...{


All,


Number,


Uppercased,


Lowercased,


NumberAndUppercased,


NumberAndLowercased,


UppercasedAndLowercased,










}


public static string GenerateRandom(int Length,RandomType rt)




...{


int initsize=0;


int beginsize = 0;


int endsize=0;


Boolean IsCross=false;


switch (rt)




...{


case RandomType.All:




...{


initsize = constant.Length; //constant数组的最大个数


beginsize = 1; //constant数组的开始下标


endsize = constant.Length; //constant数组的结束下标


//IsCross = false;


break;


}


case RandomType.Lowercased:




...{


initsize = 24; //少了2个小写L,0


beginsize = 9;


endsize = 32;


//IsCross = false;


break;


}


case RandomType.Uppercased:




...{


initsize = 25; //


beginsize = 33;


endsize = constant.Length; //constant数组的结束下标


// IsCross = false;


break;


}


case RandomType.Number:




...{


initsize = 8;


beginsize = 1;


endsize = 8;


//IsCross = false;


break;


}


case RandomType.UppercasedAndLowercased:




...{


initsize = constant.Length-8;


beginsize = 9;


endsize = constant.Length; //constant数组的结束下标


//IsCross = false;


break;


}


case RandomType.NumberAndLowercased:




...{


initsize = 32;


beginsize = 1;


endsize = 32;


//IsCross = false;


break;


}


case RandomType.NumberAndUppercased:




...{


IsCross = true;


break;


}


}








System.Text.StringBuilder newRandom = new System.Text.StringBuilder(initsize);


Random rd = new Random(unchecked(roCount * (int)DateTime.Now.Ticks));


roCount++;




if (!IsCross)




...{


for (int i = 0; i < Length; i++)




...{


newRandom.Append(constant[rd.Next(beginsize, endsize)]);


}


}


else




...{


for (int i = 0; i < Length; i++)




...{


newRandom.Append(constant[rd.Next(1, 8)]);


newRandom.Append(constant[rd.Next(33, constant.Length)]);


}


}




return newRandom.ToString();


}




}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: