保证没有重复随机数代码: '获得随机字符串方法 Public Shared Function GetRandom() As String Dim objRandom As System.Random Dim intNumber As Integer Dim intDateNum As Long Dim strNumber As String Dim dat_DateTime As DateTime strNumber = dat_DateTime.Now.ToString strNumber = strNumber.Replace(":", "") strNumber = strNumber.Replace("-", "") strNumber = strNumber.Replace(" ", "") intDateNum = CType(strNumber, Long) objRandom = New Random(Int((1 + 10 - 1) * CType(Rnd(), Integer))) intNumber = objRandom.Next(10000, 99999) objRandom = Nothing Return (intDateNum + intNumber).ToString() End Function
string y=DateTime.Now.Year.ToString();
string m=DateTime.Now.Month.ToString();
string d=DateTime.Now.Day.ToString();
string h=DateTime.Now.Hour.ToString();
string n=DateTime.Now.Minute.ToString();
string s=DateTime.Now.Second.ToString();
string filename=y+m+d+h+n+s;
Random r=new Random();
filename=filename+r.Next(1000);
'获得随机字符串方法
Public Shared Function GetRandom() As String
Dim objRandom As System.Random
Dim intNumber As Integer
Dim intDateNum As Long
Dim strNumber As String
Dim dat_DateTime As DateTime strNumber = dat_DateTime.Now.ToString
strNumber = strNumber.Replace(":", "")
strNumber = strNumber.Replace("-", "")
strNumber = strNumber.Replace(" ", "")
intDateNum = CType(strNumber, Long) objRandom = New Random(Int((1 + 10 - 1) * CType(Rnd(), Integer)))
intNumber = objRandom.Next(10000, 99999)
objRandom = Nothing
Return (intDateNum + intNumber).ToString()
End Function
private int[]GetRandomArray(int Length,int Up,int Down)
{ int iFirst=0;
int[] rtArray=new Int32[Length];
Random ro=new Random(Length*unchecked((int)DateTime.Now.Ticks));
iFirst=ro.Next(Up,Down);
rtArray[0]=iFirst;
for(int i=1;i............
呵呵,我专门加上这个代码:objRandom = New Random(Int((1 + 10 - 1) * CType(Rnd(), Integer)))
intNumber = objRandom.Next(10000, 99999)
objRandom = Nothing
Return (intDateNum + intNumber).ToString()就是防止出现相同种子值的情况的。
然后取随机数1-100
如果取出的数是4 那么和将arraylist 中的4和1 交换,返回4,再产生2-100 的随机数,如果产生的是3 那么就是arraylist 中的3和2 交换,再取3-100 类推,就不会重复,这是一个算法可能二,随机密码,要求重复机率非常低,当然也是指在非常快的情况下,可以使用RNGCryptoServiceProvider 我曾经研究过这个,代码如下:using System;
using System.Security.Cryptography;namespace ArLi.CommonPrj {
public sealed class RandomStr { /********
* Const and Function
* ********/ private static readonly int defaultLength = 8; private static int GetNewSeed(){
byte[] rndBytes = new byte[4];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(rndBytes);
return BitConverter.ToInt32(rndBytes,0);
} /********
* getRndCode of all char .
* ********/ private static string BuildRndCodeAll(int strLen) {
System.Random RandomObj = new System.Random(GetNewSeed());
string buildRndCodeReturn = null;
for(int i=0; i<strLen; i++) {
buildRndCodeReturn += (char)RandomObj.Next(33,125);
}
return buildRndCodeReturn;
} public static string GetRndStrOfAll() {
return BuildRndCodeAll(defaultLength);
} public static string GetRndStrOfAll(int LenOf) {
return BuildRndCodeAll(LenOf);
} /********
* getRndCode of only .
* ********/
private static string sCharLow = "abcdefghijklmnopqrstuvwxyz";
private static string sCharUpp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static string sNumber = "0123456789"; private static string BuildRndCodeOnly(string StrOf,int strLen) {
System.Random RandomObj = new System.Random(GetNewSeed());
string buildRndCodeReturn = null;
for(int i=0; i<strLen; i++) {
buildRndCodeReturn += StrOf.Substring(RandomObj.Next(0,StrOf.Length-1),1);
}
return buildRndCodeReturn;
} public static string GetRndStrOnlyFor() {
return BuildRndCodeOnly(sCharLow + sNumber,defaultLength);
} public static string GetRndStrOnlyFor(int LenOf) {
return BuildRndCodeOnly(sCharLow + sNumber,LenOf);
} public static string GetRndStrOnlyFor(bool bUseUpper,bool bUseNumber) {
string strTmp = sCharLow;
if (bUseUpper) strTmp += sCharUpp;
if (bUseNumber) strTmp += sNumber; return BuildRndCodeOnly(strTmp,defaultLength);
}
public static string GetRndStrOnlyFor(int LenOf,bool bUseUpper,bool bUseNumber) {
string strTmp = sCharLow;
if (bUseUpper) strTmp += sCharUpp;
if (bUseNumber) strTmp += sNumber; return BuildRndCodeOnly(strTmp,LenOf);
}
}
}
Random r=new Random(Guid.NewGuid().GetHashCode());
看来我真的还要好好学习学习了!