C#记事本中数据导入到listView提示索引超出了数组界限。如何解决啊大哥们帮忙看下

C#记事本中数据导入到listView提示索引超出了数组界限。怎么解决啊,大哥们帮忙看下
OpenFileDialog Ofd = new OpenFileDialog();
            Ofd.Filter = "文本文档(*.txt)|*.txt";
            if (Ofd.ShowDialog() == DialogResult.OK)
            {
                string[] Txts = File.ReadAllLines(Ofd.FileName);
                if (Txts.Length != -1)
                {
                    for (int i = 1; i <= Txts.Length; i++)
                    {
                        ListViewItem Lvi = new ListViewItem();

                        Lvi.Text = (listView_userNameList.Items.Count + 1).ToString();
                        string[] Unames = Regex.Split(Txts[i], "----");
                        Lvi.SubItems.Add(Unames[0]);
                        Lvi.SubItems.Add(Unames[1]);
                        Lvi.SubItems.Add("状态");
                        listView_userNameList.Items.Add(Lvi);
                    }
                }
}
------解决思路----------------------

OpenFileDialog Ofd = new OpenFileDialog();
Ofd.Filter = "文本文档(*.txt)
------解决思路----------------------
*.txt";
if (Ofd.ShowDialog() == DialogResult.OK)
{
    string[] Txts = File.ReadAllLines(Ofd.FileName);
    for (int i = 0; i < Txts.Length; i++)
    {
        ListViewItem Lvi = new ListViewItem();
        string[] Unames = Regex.Split(Txts[i], "----");
        Lvi.SubItems.Add(Unames[0]);
        Lvi.SubItems.Add(Unames[1]);
        Lvi.SubItems.Add("状态");
        listView_userNameList.Items.Add(Lvi);
    }
    Lvi.Text = Txts.Length.ToString();
}

------解决思路----------------------
在vs上,抛出异常时,vs自动就入了调试状态。你在那里调试一下 Txts[i]  自己就知道为什么了。
------解决思路----------------------
改两个地方
if (Txts.Length > 0)

for (int i = 0; i <= Txts.Length -1 ; i++)
------解决思路----------------------
数组的下标是从 0 算起的
------解决思路----------------------
c#里面索引从0开始,sql里面从1开始
------解决思路----------------------
for (int i = 1; i <= Txts.Length; i++)

1、撸主,先自己单步调试一下,超出索引,一般是数组越界访问导致的
2、数组的索引是从零开始的,也就是最大索引是(数组长度-1)
3、代码改成
for (int i = 1; i <Txts.Length; i++)

或者
for (int i = 1; i <= Txts.Length - 1; i++)