我是C#编程的新手,我知道其他语言(高级) 但我不知道我怎么能做到这一点。 我想制作一个包含随机集订单号的列表[],但它只会从另一个列表中创建数字,例如NumberLis = [0,1]
Using sr As StreamReader = New StreamReader("C:\MCHCI_Profile.txt")
Do
ListBox1.Items.Add(sr.ReadLine())
Loop Until sr.EndOfStream
End Using
我知道如何在python中执行此操作, 我试图做的Python代码(如果有帮助的话) 随机导入
NumberList = [0,1]
list = [NumberList(random(0,1))]
答案 0 :(得分:0)
我会这样做:
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();
答案 1 :(得分:0)
要随机选择集合中的固定数量的项目(使用重复),您只需随机选择总体中的索引,然后将随机选择的项目添加到结果集中。如果你不想重复,那么我建议你使用shuffle。关于如何实现混洗算法的一个非常好的答案可以找到这个问题Is using Random and OrderBy a good shuffle algorithm?
重复示例。
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]);
}
或使用LINQ
var setSize = 10;
var random = new Random();
var randomSet = Enumerable.Range(0, setSize)
.Select(i => population[random.Next(populationSize)]);
答案 2 :(得分:-1)
一点点linq。下面的代码将采用任何输入列表。
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();