欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#随机生成不重复字符串的两个不错方法

程序员文章站 2024-02-22 22:44:22
今天整理以前一个项目源码,发现两个随机生成不重复字符串的方法,觉得用起来挺方便的,在此贴出来,方便以后查阅。 方法一:随机生成不重复数字字符串 复制代码 代码如下: pri...
今天整理以前一个项目源码,发现两个随机生成不重复字符串的方法,觉得用起来挺方便的,在此贴出来,方便以后查阅。

方法一:随机生成不重复数字字符串
复制代码 代码如下:

private int rep=0;

/// <summary>
/// 生成随机数字字符串
/// </summary>
/// <param name="codecount">待生成的位数</param>
/// <returns>生成的数字字符串</returns>
private 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;
}

方法二:随机生成字符串(数字和字母混和)

/// <summary>
/// 生成随机字母字符串(数字字母混和)
/// </summary>
/// <param name="codecount">待生成的位数</param>
/// <returns>生成的字母字符串</returns>
private 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;
}