Exception C索引超出范围异常

Exception C索引超出范围异常,exception,indexing,range,out,Exception,Indexing,Range,Out,我似乎对C 2008有问题。我正在创建一个简单的程序,显示特定文件夹中所有文件的列表。我选择在Windows文件夹中试验系统文件。它显示一个文件列表,然后发生异常。代码如下: if (EnterNumber == "1") { Console.WriteLine("Files"); DirectoryInfo folderInfo = new DirectoryInfo("F:\\WINDOWS"); FileInfo[] Files = folderInfo.GetFi

我似乎对C 2008有问题。我正在创建一个简单的程序,显示特定文件夹中所有文件的列表。我选择在Windows文件夹中试验系统文件。它显示一个文件列表,然后发生异常。代码如下:

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文件夹中的文件。但是你能看到控制台写行中有几条信息吗?将显示一行,其中包含一条错误消息。发生异常时,表示索引超出数组的边界。我知道数组是什么,但我在应用这些信息时遇到了问题。如果你能告诉我一种消除这个错误的方法,我将不胜感激。因此,无论列表有多长,文件都会正常显示。此外,是否有方法允许用户清除屏幕并返回主菜单?我已经尝试了clear函数,但是我是否应该继续添加允许用户再次输入其选择的if语句

尝试更改:

Console.WriteLine("{0}, {1} ({2})", index++, Files[index].Name, Files[index].Length);
致:

在循环中,++运算符将递增两次,而您可能一次只想执行一次

        for (int index = 0; index < Files.Length; index++)
        {
            Console.WriteLine("{0}, {1} ({2})", index++, Files[index].Name, Files      [index].Length);
        }

问题出在您的writeline中,您正在再次增加索引。我会把它改成index,而不是index++

这是正确的,for循环中Console.WriteLine节上的第二个i++在上一次迭代中总是将索引增量超出Files数组的边界。这似乎就是问题所在。谢谢我可能还有一些问题,希望能得到您的帮助。
        for (int index = 0; index < Files.Length; index++)
        {
            Console.WriteLine("{0}, {1} ({2})", index++, Files[index].Name, Files      [index].Length);
        }