想要制作一个程序,通过从字符数组中选择随机元素来生成密码。但最后,在填写列表后,由于某种原因,没有显示相同的列表。我不明白,我的“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]);
}
}
因为你有一个循环条件
i < password.Count
。List
与其他集合一样,有两个主要属性 -Count
和Capacity
。我不会深入探讨它们之间的区别,但值得理解的是它们是不同的属性。创建新列表时犯了一个错误
new List<char>(16)
,因为您将其与数组混淆了,但列表构造函数设置的不是 的值Count
,而是 的值Capacity
。一般来说,您的循环会工作一次,因为
password
列表中没有元素。为了解决您的问题,我个人会为密码大小设置一个常量值并循环遍历它。