怎样在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个数随机顺序不重复的放到集合里面?的主要内容,如果未能解决你的问题,请参考以下文章