C# 如何删除列表中的选定项?

C# 如何删除列表中的选定项?,c#,list,listview,C#,List,Listview,单击按钮(删除)时,我试图删除列表中的特定项目(人员)。相反,只删除listview(listName)上的显示。当我创建另一个名称时,先前删除的名称将再次显示在lisview上 public void remove(object sender, EventArgs e) { foreach (ListViewItem eachItem in listName.SelectedItems) { listName.Items.Remo

单击按钮(删除)时,我试图删除列表中的特定项目(人员)。相反,只删除listview(listName)上的显示。当我创建另一个名称时,先前删除的名称将再次显示在lisview上

public void remove(object sender, EventArgs e)
    {
        foreach (ListViewItem eachItem in listName.SelectedItems)
        {
            listName.Items.Remove(eachItem);
        }
    }

您应该在枚举时列出要删除的项,然后使用该列表实际删除它们,以避免在枚举时修改集合(因为修改
items
实际上也是修改当前正在枚举的
SelectedItems
):

public void remove(对象发送方,事件参数e)
{
var itemsToDelete=新列表();
foreach(ListView项目listName中的每个项目。SelectedItems)
{
itemsToDelete.Add(每个项目);
}
foreach(itemsToDelete中的ListViewItem每个项目)
{
listName.Items.Remove(eachItem);
}
}

我认为你做不到。在对集合进行迭代时不能修改集合。确定它运行正常吗?如何将数据源分配给listview?我让用户在文本框中输入一个名称,并将其放在列表(人员)上,然后将其显示在listview(listName)上,然后您还应该将其从实际列表(人员)中删除,因为这是您的列表用来显示ItemsOrry的,但如何将其从列表(人员)中删除?我试过:名字。人物。移除(每个);
public void remove(object sender, EventArgs e)
{
    var itemsToDelete = new List<ListViewItem>();
    foreach (ListViewItem eachItem in listName.SelectedItems)
    {
        itemsToDelete.Add(eachItem);
    }
    foreach (ListViewItem eachItem in itemsToDelete)
    {
        listName.Items.Remove(eachItem);
    }
}