c#(asp.net)生成随机数(不重复)的例子

发布时间:2020-08-07编辑:脚本学堂
c#生成不重复随机数的例子,很多,这里为大家汇总三个,供朋友们学习参考。生成不重复的随机数列表,生成随机字符串,短时间内产生大量不重复的随机数。

c#生成不重复随机数的例子,很多很多,这里为大家汇总三个,供朋友们学习参考。

1、生成不重复随机数列表
 

复制代码 代码示例:
/// <summary>
/// 生成不重复随机数列表
/// </summary>
/// <param name="count">不重复数数量</param>
/// <returns>不重复数列表</returns>
private static List<int> GetRandomList(int count)
{
List<int> list = new List<int>();
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、生成随机字符串
 

复制代码 代码示例:
/// <summary>
/// 生成随机字符串
/// </summary>
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#在短时间内产生大量不重复的随机数的方法