C#生成不重復隨機字符串類
更新時間:2015年03月25日 10:46:16 作者:feige
這篇文章主要介紹了C#生成不重復隨機字符串類,涉及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>
/// 從字符串里隨機得到,規(guī)定個數的字符串.
/// </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#程序設計有所幫助。
相關文章
.NET WinForm實現在listview中添加progressbar的方法
這篇文章主要介紹了.NET WinForm實現在listview中添加progressbar的方法,結合實例形式簡單分析了進度條控件的添加與使用方法,需要的朋友可以參考下2017-05-05
.Net多進程通信共享內存映射文件Memory?Mapped
這篇文章主要介紹了.Net多進程通信共享內存映射文件Memory?Mapped的使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
c# WPF設置軟件界面背景為MediaElement并播放視頻
這篇文章主要介紹了c# WPF如何設置軟件界面背景為MediaElement并播放視頻,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下2021-03-03
C#使用DevExpress中的XtraCharts控件實現圖表
這篇文章介紹了C#使用DevExpress中的XtraCharts控件實現圖表的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05

