当值是字符串数组中的字符串时,为什么会抱怨无法将字符串数组转换为字符串

码:

 int i;
            string[] Filenames;

            OpenFileDialog UnConvertedFilesList = new OpenFileDialog();
            if (UnConvertedFilesList.ShowDialog() == DialogResult.OK)
            {

                foreach (string FileName in UnConvertedFilesList.FileNames)
                {

                    //Right Here
                    Filenames[i] = Filenames;
                    AudioFiles_listbox.Items.Add(FileName);
                    i++;
                }

            }//if
            else
            {
                MessageBox.Show("File does not exist");
            }


编辑:该行更改为文件名[i] =文件名

现在,它说“对我使用未分配的本地变量'文件名'和相同的东西

它们在函数顶部定义。

最佳答案

您的名字上有一个额外的“ s”:

//Right Here
Filenames[i] = Filenames;


应该:

//Right Here
Filenames[i] = FileName;


但是,更重要的是,您的Filenames []数组当前为null。解决第一个问题后,您将不得不解决这个问题。我的建议是完全跳过使用数组,而直接转到AudioFiles_listbox。然后,您可以直接使用列表框的AddRange方法:

AudioFiles_listbox.Items.AddRange(UnConvertedFilesList.FileNames);

10-06 11:08