是否可以在c#构造函数中创建一个随机的整数列表?

时间:2013-12-30 11:46:35

标签: c# .net random

我创建了一个构造函数,最初可以创建一些硬编码值。现在是我需要随机创建价值的时候了。是否可以在构造函数中执行此操作。例如,我有以下内容:

private Random _random;

public GuessingGame()
{
    this.Guesses = new List<Guess>();
    this.Target = new List<int>() { 1, 2, 3 };
    this._random = new Random();
}

public List<int> Target { get; set; }
public List<Guess> Guesses { get; set; }

我尝试创建new Random(),然后尝试分配这个,但它没有用。在我的构造函数中创建随机整数的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

public GuessingGame()
{
    this.Guesses = new List<Guess>();
    this._random = new Random();
    this.Target = new List<int>();

    int randomCount = 3; // how many randoms
    int rndMin = 1; // min value of random
    int rndMax = 10; // max value of random


    for (int i = 0; i < randomCount; i++)
      this.Target.Add(this._random.Next(rndMin, rndMax));
} 

答案 1 :(得分:1)

LINQ版本:

public GuessingGame() {
    _random = new Random();
    Target = Enumerable
                 .Repeat(0, how_many_items)
                 .Select(x => _random.Next(max_random_number_value))
                 .ToList();
    // ..the rest..
}

答案 2 :(得分:0)

这行代码

for(int i=0;i<10;i++)
{
 this.Target.Add(this._random.Next(0,10));
}

用0到9之间的10个随机数填充目标列表

private Random _random;

public GuessingGame()
{
    this.Guesses = new List<Guess>();
    this.Target = new List<int>() { 1, 2, 3 };
    this._random = new Random(DateTime.Now.Millisecond);  
    for(int i=0;i<10;i++)
    {
     this.Target.Add(this._random.Next(0,10));
    }


}

public List<int> Target { get; set; }
public List<Guess> Guesses { get; set; }