使用未赋值的局部变量'multi - dimensional '

本文关键字:dimensional multi 局部变量 赋值 | 更新日期: 2023-09-27 18:10:27

我得到一个错误使用未分配的局部变量'多维'从下面的代码。我试图把数据返回从文本文件在多维数组中通过分割它们,并把每一行在数组

    private void button1_Click_1(object sender, EventArgs e)
    {
        string[,] Lines;
        //string[][] StringArray = null;
        //to get the browsed file and get sure it is not curropted
        try 
        {
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
                {
                    string[] data= null;
                    string ReadFromReadLine;
                    while ((ReadFromReadLine = sr.ReadLine()) != null)
                    {
                        data = ReadFromReadLine.Split(',');
                        for (int i = 0; i <= ReadFromReadLine.Length; i++)
                        {
                            for (int j = 0; j <= data.Length; j++ )
                            {
                                string[,] multidimensional;
                                multidimensional[i, j] = data[j];
                            }
                        }                  
                    }
                    //foreach(string s in Lines)
                    //{
                    //    EditItemComboBox.Items.Add(s);
                    //}
                }
                FilePath.Text = openFileDialog1.FileName;
               //textBox1.Text += (string)File.ReadAllText(FilePath.Text);
            }
        }
        catch(IOException ex) 
        {
            MessageBox.Show("there is an error" + ex+ "in the file please try again");
        } 
    }

有人知道我做错了什么吗?

使用未赋值的局部变量'multi - dimensional '

string[,] multidimensional;
应:

string[,] multidimensional = new string[ReadFromReadLine.Length, data.Length];

并移出for循环,可能被发送到方法,缓存或其他

您只是定义了一个名为"多维"的数组,但没有将其分配给任何东西。

for (int j = 0; j <= data.Length; j++ )
{
    string[,] multidimensional = new String[i,data.Length]
    multidimensional[i, j] = data[j];
}

然而,我不确定我是否遵循你在最内层循环中试图做的事情。每次循环遍历数据中的元素时,都定义了一个名为"多维"的新数组,并且每次都会丢失旧数据。

如果假定'multidimensional'包含整个文件的内容,则需要在第一个循环之外定义它,但是要像这样使用数组,则需要知道文件中的行数。如果你正在使用c# 2或更高版本,List<>将是一个更好的选择

var list = new List<String[]>();
while ((ReadFromReadLine = sr.ReadLine()) != null)
{
    data = ReadFromReadLine.Split(',');
    list.Add(data);        
}