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

谁能告诉我为什么消息框不显示随机数的值?我正在尝试获取 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());

            }

        }


qq_花开花谢_0
浏览 154回答 3
3回答

莫回无

如果没有被覆盖,ToString()将显示对象类型的名称。在您的情况下,它将显示List<int>类型名称:System.Collections.Generic.List`1[System.Int32]如果要显示列表的内容,则应手动创建字符串。例如&nbsp;var formattedPattern = String.Join(", ", pattern); // "2, 1, 3, 2"&nbsp;MessageBox.Show(formattedPattern );如果您想在每次迭代中显示单个列表项,您可以按照@MikeH 的建议通过索引引用它们,或者只使用一个临时变量&nbsp;var nextNumber = number.Next(1, 4);&nbsp;pattern.Add(nextNumber);&nbsp;MessageBox.Show(nextNumber.ToString());

牧羊人nacy

pattern是一个List<int>。当你这样做.ToString()时,它是在整个对象上(即所有项目,而不仅仅是一个)。&nbsp;List不提供显示项目的方法,因此它只返回类型。要一次显示一个数字,您需要这样做:pattern[counter].ToString()这将选择列表中的特定项目,因为counter与列表的当前索引匹配。

隔江千里

您正在尝试在消息框中显示列表对象。而是尝试下面的代码&nbsp;for (int counter = 0; counter < rounds; counter++)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var randNo = number.Next(1, 4);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pattern.Add(randNo );&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MessageBox.Show(randNo);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP