在[]中使用数字赋值时,无法将字符串[]转换为字符串

Jar*_*ner 1 c# arrays string

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

码:

 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");
            }
Run Code Online (Sandbox Code Playgroud)

编辑:该行改为Filenames [i] = FileName

现在它说"使用未分配的局部变量'文件名'和i相同的东西

它们定义在函数的顶部.

Joe*_*orn 6

你的名字上还有一个额外的"s":

//Right Here
Filenames[i] = Filenames;
Run Code Online (Sandbox Code Playgroud)

应该:

//Right Here
Filenames[i] = FileName;
Run Code Online (Sandbox Code Playgroud)

不仅如此,您的Filenames []数组目前还在null.一旦你解决了第一个问题,你就可以解决这个问题了.我的建议是完全跳过使用数组,直接进入AudioFiles_listbox.一旦你这样做,你可以直接使用Listbox的AddRange方法:

AudioFiles_listbox.Items.AddRange(UnConvertedFilesList.FileNames);
Run Code Online (Sandbox Code Playgroud)