在python中你可以这样做:
arr = list(set(randint(-50, 50) for _ in range(10)))
我确实知道如何编写一个扩展方法,用随机值填充数组,列表或任何你需要的东西。
我发现这很麻烦,我真的很佩服你如何在python中做到这一点。
虽然,据我所知,我只知道Enumerable.Range,
只能用于生成固定序列。
是否也可以在C#中使用?
答案 0 :(得分:11)
你可以这样做:
Random rnd = new Random();
List<int> = Enumerable.Range(0,10).Select(n => rnd.Next(-50, 51)).ToList();
答案 1 :(得分:2)
var r = new Random();
var l = Enumerable.Range(0, 10).Select(x => r.Next(100) - 50).ToList();
答案 2 :(得分:2)
当然,有点像......
Random r = new Random();
var ints = Enumerable.Range(0, 50).OrderBy(i => r.Next());
答案 3 :(得分:1)
只需添加变体,您就可以创建一个非常简单的静态方法:
public static IEnumerable<int> RandomSequence(int minValue, int maxValue)
{
Random r = new Random();
while (true)
yield return r.Next(minValue, maxValue);
}
然后像这样使用它:
var numbers = RandomSequence(-50, 50).Take(10));
foreach(var number in numbers)
Console.WriteLine(number);
我爱yield return
...呵呵c“,)