C#生成不重复随机字符串类

本文实例讲述了C#生成不重复随机字符串类。分享给大家供大家参考。具体如下:

这个C#类用于随机产生不重复的字符串,可以指定字符串范围,可以指定要产生字符串的长度

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

}

}

希望本文所述对大家的C#程序设计有所帮助。

以上是 C#生成不重复随机字符串类 的全部内容, 来源链接: utcz.com/z/337733.html

回到顶部