C# 如何生成不重复的1-100随机数。

 我来答
Crabin
2017-02-21 · TA获得超过122个赞
知道答主
回答量:62
采纳率:0%
帮助的人:52.1万
展开全部
有两种思路:1、随机生成一个1-100的数,然后判断重复,如果重复再生成一次;
2、创建一个数组,元素内容为1-100,对元素随机排序。
请参考下面的代码
public void GenerateRandomNums()
{
List list = new List();
Random rand = new Random();
int value;
while (true)
{
if (list.Count == 20)
{
Console.WriteLine("U should get the 20 random numbers. ");
break;
}
value = rand.Next(1, 21);
if (!list.Contains(value))
{
list.Add(value);
}
}
foreach (int temp in list)
{
Console.WriteLine("Num:{0}.", temp);
}
}

第二种思路:
int[] a = { 1, 2, 4, 5, 3, 6, 7, 8 };
int[] b = a.OrderBy(x => Guid.NewGuid()).ToArray();
foreach (int v in b)
Console.WriteLine(v);
Console.ReadKey();
阳光的雷咩咩
2017-02-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7787万
展开全部
            Random r = new Random();
            int[] nums = Enumerable.Range(1, 100)
                .OrderBy(x => r.Next()).ToArray();
            foreach (int n in nums)
                Console.WriteLine(n);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
swatshuju
2017-12-11
知道答主
回答量:1
采纳率:0%
帮助的人:921
引用阳光的雷咩咩的回答:
Random r = new Random(); int[] nums = Enumerable.Range(1, 100) .OrderBy(x => r.Next()).ToArray(); foreach (int n in nums) Console.WriteLine(n);
展开全部
x是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式