当我尝试将文件从 txt 导入到 datagridview 时出现错误

I get an error when I try to import files from a txt to a datagridview

如标题中的问题所述,我在将数据从 txt 文件导入 datagridview 时遇到问题。我收到错误输入数组比列数长。这是我用来将我的数据从 datagridview 保存到 txt 文件的方法,以及我想用来将数据导入 datagridview 的方法:

 private void OpenFile_Click(object sender, EventArgs e)
    {
        string[] lines = File.ReadAllLines(@"C:\Users\gv9816\source\repos\Liste\UserData.txt");
        string[] values;


        for (int i = 0; i < lines.Length; i++)
        {
            values = lines[i].ToString().Split('|');
            string[] row = new string[values.Length];

            for (int j = 0; j < values.Length; j++)
            {
                row[j] = values[j].Trim();
            }
            _table.Rows.Add(row);
        }

    }

    private void SaveFile_Click_1(object sender, EventArgs e)
    {
        TextWriter writer = new StreamWriter(@"C:\Users\gv9816\source\repos\Liste\UserData.txt");
        for (int i = 0; i < _table.Rows.Count - 1; i++)
        {
            for (int j = 0; j < _table.Columns.Count; j++)
            {
                writer.Write("\t" + DataGridViewCell.Rows[i].Cells[j].Value.ToString() + "\t");
            }
            writer.WriteLine("");

        }
        writer.Close();
        MessageBox.Show("Data Exported");
    }

此外,这是我用来创建列的内容:

private void Form1_Load(object sender, EventArgs e)
    {
        _table.Columns.Add("First Name", typeof(string));
        _table.Columns.Add("Last Name", typeof(string));
        _table.Columns.Add("Age", typeof(int));

        DataGridViewCell.DataSource = _table;
    }

这是我的 UserData.txt 文件中的输出

Hans    |   Müller  |   12  |

Here is what the application Looks like

And this is what is generated into the UserData file

任何帮助将不胜感激:)

最后一个|字符是问题,如果你不能改变txt文件里面的数据。只需更改此行,

values = lines[i].ToString().Split('|');

对此,

values = lines[i].ToString().Split('|').Where(x => !string.IsNullOrEmpty(x)).ToArray();