从LIST <>获取整数数组的值

时间:2018-12-19 17:19:58

标签: c# list random

谁能告诉我为什么消息框没有显示随机数的值?我正在尝试获取10个随机数,并在消息框中一次显示一个。数字可以重复,并且应该在1到4之间。

public void GetRandomPattern()
        {
            List<int> pattern = new List<int>();

            rounds = 10;
            Random number = new Random();

            for (int counter = 0; counter < rounds; counter++)
            {
                pattern.Add(number.Next(1, 4));
                MessageBox.Show(pattern.ToString());
            }
        }

3 个答案:

答案 0 :(得分:2)

patternList<int>。当您对整个对象(即所有项目,而不仅仅是一个项目)执行.ToString()时。 List没有提供显示项目的方法,因此只返回类型。

要一次显示一个数字,您需要这样做:

pattern[counter].ToString()

由于counter与列表的当前索引匹配,因此将选择列表中的特定项目。

答案 1 :(得分:2)

如果未覆盖,ToString()将为您显示对象类型的名称。对于您的情况,它将显示List<int>类型的名称:

  

System.Collections.Generic.List`1 [System.Int32]

如果要显示列表的内容,则应手动创建字符串。例如

 var formattedPattern = String.Join(", ", pattern); // "2, 1, 3, 2"
 MessageBox.Show(formattedPattern );

如果要在每次迭代中显示列表的各个项目,则可以按照@MikeH的建议按索引引用它们,或为此使用一个临时变量

 var nextNumber = number.Next(1, 4);
 pattern.Add(nextNumber);
 MessageBox.Show(nextNumber.ToString());

答案 2 :(得分:0)

您正在尝试在消息框中显示列表对象。而是尝试下面的代码

 for (int counter = 0; counter < rounds; counter++)
            {
                var randNo = number.Next(1, 4);
                pattern.Add(randNo );
                MessageBox.Show(randNo);
            }