怎样在C#中把0-10这11个数随机顺序不重复的放到集合里面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在C#中把0-10这11个数随机顺序不重复的放到集合里面?相关的知识,希望对你有一定的参考价值。

参考技术A using System.Collections.Generic;//所需程序集
//示例1 直接添加
HashSet<int> hashSet = new HashSet<int>();
hashSet.Add(1);
hashSet.Add(1);//最终hashSet.Count为1,表明成功过滤重复。并且HashSet不会对重复数据抛出异常。
//示例2 过滤
int[] array = new int[] 1, 2, 1
new HashSet<int> = new HashSet<int>(array);//也可以是List或者别的支持接口IEnumerable的对象。最终HashSet内将会仅有1和2。

//又或者您可能想要一段这样的程序
using System;
using System.Collections.Generic;
Random r = new Random();
HashSet<int> hashSet = new HashSet<int>();
while(hashSet.Count < 11)//直到hashSet里有11个数
hashSet.Add(r.Next(10));//往hashSet里添加一个0~10的随机数



//另一种实现方式
using System;
using System.Linq;
int[] array = new int[11];
for(int i =0 ; i < 11; i++)
array[i] = -1;//初始化数组


int count d= 0, temp;
while(count < 11)
temp = r.Next(10);//获得一个0~10的数

if(!array.Contain(temp))//如果temp不存在于array中


array[count++] = temp;//添加temp





//再再再再再给另一种我还能想到的算法
using System;
using System.Collections.Generic;
int i, temp;
int[] array = new int[11];
List<int> list = new List<int>();
Random r = new Random();
for (i = 0; i < 11; i++)//初始化所需数字集合的链表

list.Add(i);


for (i = 0; i < 11; i++)

temp = r.Next(10 - i);//获得一个0~( 10 - i )的数
array[0] = list[temp];//将temp索引处的值存入array
list.RemoveAt(temp);//删除已用元素


求采纳,谢谢!
参考技术B var r = new Random();
var result = Enumerable.Range(0, 11).Select(o => new Tuple<int, int>(r.Next(), o)).OrderBy(o => o.Item1).Select(o => o.Item2);
IEnumerable<int>类型的result就是你要的集合

以上是关于怎样在C#中把0-10这11个数随机顺序不重复的放到集合里面?的主要内容,如果未能解决你的问题,请参考以下文章

怎么用python生成随机的且不重复的整数?

在c#中随机抽取数据库中数据且不重复怎么实现SQL语句

如何让C#产生不重复的随机数

c# 随机单个三个数作为一组,不重复之前出现的一组数据

JavaScript问题:一个有一百个随机数字的数组中(可能有重复数字),随机抽取十个,且这十个数字不重复。

怎么用EXCEL从一堆数据中找出包含这几个数的地方,顺序不限