C# 如何按名称查找歌曲并将其从播放列表中删除
基本上,我正在制作自动点唱机,但WMPLib库有一个大问题。C# 如何按名称查找歌曲并将其从播放列表中删除,c#,playlist,windows-media-player,wmplib,C#,Playlist,Windows Media Player,Wmplib,基本上,我正在制作自动点唱机,但WMPLib库有一个大问题。 我试图从播放列表中删除一个项目,但问题是我找不到任何方法按名称获取索引或实际媒体。 我 我想制作一个播放列表的复制阵列,但这比我应该在这样一个简单的任务中投入的工作量要多得多 private void queue_listbox_SelectedIndexChanged(object sender, System.EventArgs e) { if (queue_listbox.SelectedItem !=
我试图从播放列表中删除一个项目,但问题是我找不到任何方法按名称获取索引或实际媒体。
我 我想制作一个播放列表的复制阵列,但这比我应该在这样一个简单的任务中投入的工作量要多得多
private void queue_listbox_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (queue_listbox.SelectedItem != null)
{
wplayer.currentPlaylist.removeItem('Insert code here');
music_listbox.Items.Add(queue_listbox.SelectedItem);
queue_listbox.Items.Remove(queue_listbox.SelectedItem);
}
}
只需像这样使用
字典
:
// 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>();
字典基本上是列表,基本上是数组,除了作为索引器传递数字之外(songs[5]
获取第6首歌曲),您可以传递任何类型的TKey
(songs[“看这张照片”]
获取与该字符串配对的歌曲)
我不知道你是否制作了这个Listbox
类,或者它是由微软制作的。如果它是构建的,那么如果它已经是一个数组,那么它就不能成为一个字典,在这种情况下,你需要更具创造性。您可能需要基本上重新创建列表框
,以便使用字典
或一些巧妙的解决方法
您可以做一些事情,比如制作一个
ListboxManager
,它将保存一个字典
,并使用一个名为GetItems(this Listbox Listbox)=>ListboxManager.listboxs[Listbox]的扩展方法代码>这可能会起作用 哦,是的,我有媒体文件的路径和文件名,但是没有命令可以让你搜索播放列表,你不需要索引。您应该能够使用获取项目本身,然后将项目直接传递给。
// Removes "Look at this Photograph" from the songs Dictionary
songs["Look at this Photograph - Nickleback"].Remove();