Получение значения целочисленного массива из LIST <> - PullRequest
0 голосов
/ 19 декабря 2018

Может кто-нибудь сказать мне, почему в окне сообщения не отображается значение случайного числа?Я пытаюсь получить 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 голосов
/ 19 декабря 2018

Если не переопределено, 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());
0 голосов
/ 19 декабря 2018

Вы пытаетесь отобразить объект списка в окне сообщения.вместо этого попробуйте код ниже

 for (int counter = 0; counter < rounds; counter++)
            {
                var randNo = number.Next(1, 4);
                pattern.Add(randNo );
                MessageBox.Show(randNo);
            }
0 голосов
/ 19 декабря 2018

pattern является List<int>.Когда вы делаете .ToString(), это относится ко всему объекту (т.е. ко всем элементам, а не только к одному).List не предоставляет способ отображения элементов, поэтому он просто возвращает тип.

Чтобы отображать по одному номеру за раз, вы захотите сделать это вместо:

pattern[counter].ToString()

, который выберет конкретный элемент в вашем списке, поскольку counter соответствует текущему индексу вашегоСписок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...