首页 > 解决方案 > 在 for 循环中向 2D 数组添加数据

问题描述

我想制作一个简单的应用程序,在 listview 列中列出文件夹中的所有文件,而子目录路径是另一列。为此,我创建了一个二维数组并尝试将文件名添加到第一列,并将路径添加到另一列。这是我的代码

  {
        string pathtoList;
        string fileName;
        string DirName;

        pathtoList = (@"D:\Videos");
        string[] allFileNames = System.IO.Directory.GetFiles(pathtoList, "*.*", System.IO.SearchOption.AllDirectories);
        string[,] call1= new string[allFileNames.Length,2];
        for (int i = 0; i< allFileNames.Length; i++)
        {
            fileName = System.IO.Path.GetFileNameWithoutExtension(allFileNames[i].ToString());
            DirName = System.IO.Path.GetDirectoryName(allFileNames[i].ToString());
            call1[0, i] = fileName;
            call1[1, i] = DirName;
        }
    }

当我这样做时,我得到异常“索引超出了数组的范围。” 谁能告诉这条鳕鱼有什么问题?谢谢

标签: c#arrays

解决方案


你声明了 Array

[allFileNames.Length,2]

然后你切换索引,这是一个解决方案

call1[i, 0] = fileName;
call1[i, 1] = DirName;

推荐阅读