0

リストボックスで検索してカードを追加できる辞書がありますが、ユーザーがボタンを押した場合に辞書からその項目を削除できるようにしたいのは、辞書に値を追加するために使用するコードです。

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値を探す必要があります

4

1 に答える 1

1

私はあなたがこれを試すことができると思います

m_banlists[BanList.Items[BanList.SelectedIndex].ToString()].ToList().RemoveAll(x=>x.ID==someId);
于 2013-07-25T11:31:00.110 に答える