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

}

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();
} 
}
本文介绍了一个使用C#编写的实用工具类,用于生成指定长度的随机字符串,包括数字和字母组合。该方法提供了多种配置选项,如全部字符、仅数字、仅小写字母等,并通过枚举类型进行参数传递。

被折叠的 条评论
为什么被折叠?



