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

时间:2010-07-19 01:35:03

标签: 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");
            }

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

现在它说“使用未分配的局部变量'文件名'和i

相同的东西

它们定义在函数的顶部。

2 个答案:

答案 0 :(得分:6)

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

//Right Here
Filenames[i] = Filenames;

应该是:

//Right Here
Filenames[i] = FileName;

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

AudioFiles_listbox.Items.AddRange(UnConvertedFilesList.FileNames);

答案 1 :(得分:0)

“使用未分配的”意味着您没有在该方法或代码段中的任何位置使用它...您的分配现在可以,但它没有被使用。

HTH。