數字與字母皆有 ASCII 編碼。除預先備妥字元陣列外,可直接用 ASCII 範圍產生。本文採簡單字元來源字串法:
public static string Generate(RandomGeneratorStyle style, int length) {
string strValidateString = "";
Random rnd = new Random();
string strValidateStringSource;
switch (style) {
case RandomGeneratorStyle.Number:
strValidateStringSource = "0123456789"; break;
case RandomGeneratorStyle.NumberAndChar:
strValidateStringSource = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; break;
case RandomGeneratorStyle.NumberAndCharIgnoreCase:
strValidateStringSource = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; break;
default:
strValidateStringSource = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; break;
}
for (int i = 0; i < length; i++)
strValidateString += strValidateStringSource[rnd.Next(strValidateStringSource.Length - 1)];
return strValidateString;
}
簡單高效,可依需求擴充字元集(如特殊符號)。