Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 制作一个包含其他列表中随机数的列表_C#_List - Fatal编程技术网

C# 制作一个包含其他列表中随机数的列表

C# 制作一个包含其他列表中随机数的列表,c#,list,C#,List,我对C语言编程非常陌生,我对其他语言有很高的了解 但我不知道我怎么能做到这一点。 我想创建一个包含随机设置顺序号的列表[],但它只能从另一个列表创建数字,例如NumberLis=[0,1] NumberList = [0,1] list = [NumberList(random(0,1))] 我知道如何在python中实现这一点, Python代码,如果有帮助的话,我会尝试做什么 随机输入 NumberList = [0,1] #The set numbers List = [] for i

我对C语言编程非常陌生,我对其他语言有很高的了解 但我不知道我怎么能做到这一点。 我想创建一个包含随机设置顺序号的列表[],但它只能从另一个列表创建数字,例如NumberLis=[0,1]

NumberList = [0,1]
list =  [NumberList(random(0,1))]
我知道如何在python中实现这一点, Python代码,如果有帮助的话,我会尝试做什么 随机输入

NumberList = [0,1] #The set numbers
List = []
for i in range(10):
    List.append(NumberList[random.randint(0,1)])
print(List)

我会这样做:

int[] source = new [] { 0, 1, };

var rnd = new Random();

List<int> result =
    Enumerable
        .Range(0, 100)
        .Select(n => source[rnd.Next(0, source.Length)])
        .ToList();

要从重复的集合中随机选择固定数量的项目,您只需将索引随机选择到总体中,然后将随机选择的项目添加到结果集中。如果你不想重复,那么我建议使用洗牌。对于这个问题,可以找到一个关于如何实现洗牌算法的非常好的答案

重复的例子

var populationSize = 1000;
var population = Enumerable.Range(0, populationSize); // example - your population could be different

var randomSet = new List<int>();
var setSize = 10;

var random = new Random();

for (var i = 0; i < setSize; ++i)
{
    var idx = random.Next(populationSize);
    randomSet.Add(population[idx]);
}

有点小林克。下面的代码将接受任何输入列表

Random rand = new Random();
List<int> input = new List<int>() { 1, 54, 4, 3, 7, 8 };
List<int> output = input.Select(x => new {rand = rand.Next(), value = x}).OrderBy(y => y.rand).Select(z => z.value).ToList();​

是否要创建一个集合,其中的值以随机顺序从另一个集合中提取,还是从第一个集合中提取一个随机子集?
Random rand = new Random();
List<int> input = new List<int>() { 1, 54, 4, 3, 7, 8 };
List<int> output = input.Select(x => new {rand = rand.Next(), value = x}).OrderBy(y => y.rand).Select(z => z.value).ToList();​