Почему не выводится список?
хотел сделать программу, которая генерирует пароль путем выбора случайного элемента из массива символов. Но в конце после заполнения списка, почему-то этот же самый список не выводится. И я не понимаю, у меня ошибка в функции "ShowList()" или у меня список пустой.. заранее спасибо!
List<char> password = new List<char>(16);
Random rand = new Random();
for (int index = 0; index < password.Count; index++)
{
int randomSymbol = rand.Next(0, symbols.Length);
password.Add(symbols[randomSymbol]);
}
ShowList(password);
static void ShowList(List<char> list)
{
for (int index = 0; index < list.Count; index++)
{
Console.WriteLine(list[index]);
}
}
Ответы (1 шт):
Потому что у вас условие цикла i < password.Count
. List
, как и другие коллекции, имеет два основных свойства - Count
и Capacity
. Не буду углубляться в разницу между ними, но стоит понимать, что это разные свойства.
Вы ошиблись, когда создали новый список new List<char>(16)
, потому что вы перепутали это с массивами, но конструктор списка устанавливает не значение Count
, а значение Capacity
.
В общем говоря, у вас цикл отрабатывает - раз, потому что в списке password
нет элементов.
Для решения вашей задачи, лично я бы установил константное значение для размера пароля и по нему обходил бы цикл.