当前位置: 编程技术>.net/c#/asp.net
c#(asp.net)生成随机数(不重复)的例子
来源: 互联网 发布时间:2014-08-30
本文导语: c#生成不重复随机数的例子,很多很多,这里为大家汇总三个,供朋友们学习参考。 1、生成不重复随机数列表 代码示例: /// /// 生成不重复随机数列表 /// /// 不重复数数量 /// 不重复数列表 private static List GetRandomList(int ...
c#生成不重复随机数的例子,很多很多,这里为大家汇总三个,供朋友们学习参考。
1、生成不重复随机数列表
代码示例:
///
/// 生成不重复随机数列表
///
/// 不重复数数量
/// 不重复数列表
private static List GetRandomList(int count)
{
List list = new List();
int num = 0;
Random rnd = new Random();
for (int i = 0; i < count; i++)
{
do
{
num = rnd.Next(010000, 1000000);
} while (list.Contains(num));//
list.Add(num);
}
return list;
}
/// 生成不重复随机数列表
///
/// 不重复数数量
/// 不重复数列表
private static List GetRandomList(int count)
{
List list = new List();
int num = 0;
Random rnd = new Random();
for (int i = 0; i < count; i++)
{
do
{
num = rnd.Next(010000, 1000000);
} while (list.Contains(num));//
list.Add(num);
}
return list;
}
2、生成随机字符串
代码示例:
///
/// 生成随机字符串
///
private class RandomStringGenerator
{
static readonly Random r = new Random();
const string _chars = "0123456789";
public static string GetRandomString()
{
char[] buffer = new char[5];
for (int i = 0; i < 5; i++)
{
buffer[i] = _chars[r.Next(_chars.Length)];
}
return new string(buffer);
}
}
/// 生成随机字符串
///
private class RandomStringGenerator
{
static readonly Random r = new Random();
const string _chars = "0123456789";
public static string GetRandomString()
{
char[] buffer = new char[5];
for (int i = 0; i < 5; i++)
{
buffer[i] = _chars[r.Next(_chars.Length)];
}
return new string(buffer);
}
}
3、短时间内产生大量不重复的随机数
生成随机数可以用伪随机数发生器Random,受种子控制生成伪随机数,默认以当前时间值为种子。
如果程序运行的很快,就会导致在几乎同一时刻运行多次,肯定会有重复的。
比如我们要生成1到10之间的5个随机数,则经常会产生 2 2 1 1 1这样的情况,那么如何得到非常随机的不那么重复的随机数呢?比如 4 2 3 3 5这样的。
不推荐使用Thread.Sleep(5) ,会减缓系统的运行。
应该这样:用种子Guid.NewGuid().GetHashCode(),在短时间里不会出现大量重复。
如果以上内容,仍无法解决您的问题,那么请继续浏览如下文章:
生成不重复随机数列表的c#代码
C#生成不重复的随机数的几个代码
Random连续产生相同随机数的解决方法
用C#在短时间内产生大量不重复的随机数的方法