如何检查歌曲是否尚未添加到播放列表? (“。包含”将不起作用)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查歌曲是否尚未添加到播放列表? (“。包含”将不起作用)相关的知识,希望对你有一定的参考价值。
这样做的目的是要检查用户的响应是否在(songNames)之内,而不是基于它来检查用户的响应是否已经添加到音乐播放列表中(以防止同一首歌曲多次输入)
private void btnAddToPlaylist_Click(object sender, EventArgs e)
{
string usersInput = txtBoxSongName.Text + ".mp3";
usersInput = usersInput.ToLower();
List<string> songNames = new List<string>(new string[] { "rock and roll.mp3", "wake up.mp3", "floating away.mp3", "inside.mp3" });
if (songNames.Contains(usersInput))
{
var customPlaylist = player.newPlaylist("Custom Playlist", "");
if (!customPlaylist.Contains(usersInput))
{
customPlaylist.appendItem(player.newMedia(usersInput));
}
else
{
MessageBox.Show("This song is already in your playlist.");
}
}
else
{
MessageBox.Show("The following song is not available.");
}
答案
正如@Kaenbyou Rin在评论中所说,目前尚不清楚customPlaylist
是什么。因此,我认为它是List<string>
。
Contains
方法仅检查列表是否包含要传递给它的内容的完全匹配。因此,如果userInput
是customPlaylist
中字符串的一部分,则可以像这样检查它:
if (!customPlaylist.Any(x=>x.Contains(userInput)))
注意:如果customPlaylist
是一个复杂的对象,则应在该对象中实现Equals方法,然后Contains
将正常工作。
另一答案
1。比较问题?
更改
if (!customPlaylist.Contains(usersInput))
to
if (!customPlaylist.Any(m=> m.Title == usersInput)) //Title, Name, or whatever your use as the Id.
2。新的播放列表问题?
2A
第一次查找成功后,您始终创建一个新的播放列表。
var customPlaylist = player.newPlaylist("Custom Playlist", "");
if (!customPlaylist.Contains(usersInput))
如果.newPlaylist
列表中不包含曲目,则您正在空列表中搜索。
2B
[appendItem之后,曲目被分配为播放器列表吗?如果不是,那么下次您向播放器询问.newPlaylist时,它将不包含添加的项目。
以上是关于如何检查歌曲是否尚未添加到播放列表? (“。包含”将不起作用)的主要内容,如果未能解决你的问题,请参考以下文章