使用LINQ </int>填充列表<int>

时间:2009-08-17 11:30:22

标签: c# linq random

在python中你可以这样做:

arr = list(set(randint(-50, 50) for _ in range(10)))

我确实知道如何编写一个扩展方法,用随机值填充数组,列表或任何你需要的东西。 我发现这很麻烦,我真的很佩服你如何在python中做到这一点。 虽然,据我所知,我只知道Enumerable.Range,只能用于生成固定序列。

是否也可以在C#中使用?

4 个答案:

答案 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“,)