C# 使用值删除字典中的项
我有一个字典,你可以通过在列表框中搜索来添加卡片,但是现在如果用户按下按钮,我希望能够从字典中删除该项。这里是我用来向字典添加值的代码C# 使用值删除字典中的项,c#,C#,我有一个字典,你可以通过在列表框中搜索来添加卡片,但是现在如果用户按下按钮,我希望能够从字典中删除该项。这里是我用来向字典添加值的代码 if (!m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].Exists(banListCard => banListCard.ID == Program.CardData[cardid].Id)) { m_banlists[BanList.Items[BanList.Selecte
if (!m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].Exists(banListCard => banListCard.ID == Program.CardData[cardid].Id))
{ m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].Add(
new BanListCard { ID = Program.CardData[cardid].Id, Banvalue = 0, Name = Program.CardData[cardid].Name });
}
我不会发布所有的代码,因为它太长了
下面是我用来删除项目的代码
var list = (ListBox) sender;
if (list.SelectedIndex != -1)
{
int cardid = Int32.Parse((string)list.SelectedItem.ToString());
if (m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].Exists(banListCard => banListCard.ID == Program.CardData[cardid].Id))
{
m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].Remove();
list.Items.RemoveAt(list.SelectedIndex);
}
}
但是我不知道在remove的括号中放什么才能找到值哦,它需要查找ID值我想你可以试试这个
m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].ToList().RemoveAll(x=>x.ID==someId);
事实上,它被设置为一个字典,只是设置有点不同于大多数dictionaries@outlaw1994好的,但是试着编辑你的评论,而不是添加新的评论,以避免垃圾邮件:)