我似乎在C#2008有问题。我正在创建一个简单的程序,显示特定文件夹内的所有文件的列表。我选择在Windows文件夹中试验系统文件。它显示文件列表,然后发生异常。这里是代码:C#索引超出范围异常
if (EnterNumber == "1")
{
Console.WriteLine("Files");
DirectoryInfo folderInfo = new DirectoryInfo("F:\\WINDOWS");
FileInfo[] Files = folderInfo.GetFiles();
String UserChoice = Console.ReadLine();
for (int index = 0; index < Files.Length; index++)
{
Console.WriteLine("{0}, {1} ({2})", index++, Files[index].Name, Files[index].Length);
}
Console.Write("Return To Main Menu?: ");
if (UserChoice == "y")
{
因此,用户按数字1显示文件,它们出现在列表中。它显示Windows文件夹中的文件。但是,你能看到控制台写有多条信息的行吗?一条线出现一条消息给出错。发生异常说索引超出了数组的范围。我知道一个数组是什么,但是我在应用这些信息时遇到了问题。如果你可以告诉我一个方法来消除这个错误,那么我将不胜感激。所以文件通常显示,无论列表多长。另外,有没有办法允许用户清除屏幕并返回到主菜单?我已经尝试了清晰的功能,但是我应该不断添加if语句以允许用户再次输入他们的选择吗?
这是正确的,for循环中的Console.WriteLine()节中的第二个i ++将始终将索引从最后一次迭代中的Files数组的边界增加。 – acm 2012-01-12 21:48:59