日期:2014-05-20 浏览次数:20890 次
public static class RandomTools
{
/// <summary>
/// 生成最大值范围内无重复值的长度为最大值的随机序列,例:6,则返回0,1,2,3,4,5 的List
/// </summary>
/// <param name="maxValue"></param>
/// <returns></returns>
public static List<int> GetRandomList(this int maxValue)
{
if (maxValue == 0)
{
return null;
}
//逻辑描述:生成从0开始到maxValue的tempList
//然后random一次就maxValue--,并将random出来的整数用做索引,加入到returnList并从tempList中移除
maxValue = Math.Abs(maxValue);//防止负数
List<int> tempList = new List<int>();
for (int i = 0; i < maxValue; i++)
{
tempList.Add(i);
}
Random rd = new Random();
List<int> returnList = new List<int>();
while (maxValue > 0)
{
int tempInt = 0;
if (maxValue > 1)//当maxValue为1时,不再进行随机,因为还剩一个数字,无需随机
{
tempInt = rd.Next(maxValue);
}
returnList.Add(tempList[tempInt]);
tempList.RemoveAt(tempInt);
maxValue--;
}
return returnList;
}
/// <summary>
/// 生成指定长度的随机字符串(从字符串资源中)
/// </summary>
/// <param name="length"></param>