Просто используйте Dictionary<TKey, TValue>
примерно так:
// The string will be used as the name to find the song.
// I don't know what type you are using for the song,
// so I'm just using the madeup type "Song"
Dictionary<string, Song> songs = new Dictionary<string, Song>();
И затем вы можете удалить его, выполнив (псевдокод)
// Removes "Look at this Photograph" from the songs Dictionary
songs["Look at this Photograph - Nickleback"].Remove();
Словари - это в значительной степени списки, которые в значительной степени являются массивами, за исключением того, что вместо передачи числа в качестве индексатора (songs[5]
получает 6-ю песню) вы можете передать любой тип TKey
(songs["Look at this Photograph"]
получает песню это в паре с этой строкой).
Я не знаю, создал ли вы этот класс Listbox
или он создан Microsoft. Если он построен, то Items
нельзя сделать словарем, если это уже массив, в этом случае вам нужно проявить больше творчества. Возможно, вам придется воссоздать Listbox
, чтобы получить Dictionary
или какой-нибудь умный обходной путь.
Вы можете сделать что-то вроде создания ListboxManager
, который будет содержать Dictionary<Listbox, Dictionary<string, Song>>
, и использовать метод расширения под названием GetItems(this Listbox listbox) => ListBoxManager.Listboxes[listbox];
, который, вероятно, будет работать.