C#Indexoutofrange数组学校项目错误

时间:2011-12-21 07:29:59

标签: c# arrays

我在下面有一些C#代码。问题是当我尝试从列出的框中删除它会引发错误。我知道这不是最好的方法。这是为了学校,我只允许使用数组。只是寻找一些输入。错误是indexoutofrange。尝试删除名称时出现问题。

private void deletebtn_Click(object sender, EventArgs e)
{
    addressbook[lstContacts.SelectedIndex].firstnamestring = "";
    addressbook[lstContacts.SelectedIndex].lastnamestring = "";
    addressbook[lstContacts.SelectedIndex].addressstring = "";
    addressbook[lstContacts.SelectedIndex].citystring = "";
    addressbook[lstContacts.SelectedIndex].statestring= "";
    addressbook[lstContacts.SelectedIndex].zipcodestring = "";

    firstname.Text = "Add a new Contact";
    lastname.Text = "";
    streetaddy.Text = "";
    city.Text = "";
    state.Text = "";
    zipcode.Text = "";

    int listselction = lstContacts.SelectedIndex;
    string removed = "Remove Contact";
    lstContacts.Items.Insert(listselction, removed);
    lstContacts.Items.RemoveAt(listselction + 1);
    lstContacts.ClearSelected();
    lstContacts.Refresh();
}

1 个答案:

答案 0 :(得分:0)

在第

行设置断点
lstContacts.Items.RemoveAt(listselction + 1); 

并查看listselction的值。然后检查.Items是否包含这么多项目。请记住,索引从0开始。你可能试图删除索引大于或等于'.Items.Count - 1`。