我正在制作一个有2个字典排队和播放的程序
我想要从队列中抓取第一个元素,并在播放为空的时候移动到播放,我唯一的代码片段是if(Playing.Count == 0){}
,有什么方法可以做到吗?
PS:播放和队列都需要一个int和一个player,player是定义的,int是player ID
编辑
代码示例:
public static Dictionary<int, player> queue = new Dictionary<int, player>();
public static Dictionary<int, player> Playing = new Dictionary<int,
player>();
if (Regex.IsMatch(m.GetString(1).Substring(0, 1), @"\.|\!|\?|\-|\+"))
{
var cmdprefix = m.GetString(1).Substring(0, 1); //Set the command prefix
var words = m.GetString(1).ToLower().Split(' '); //Split the spacebar into words.
if (words[0].StartsWith(cmdprefix + "queue")); //If words starts with the prefix and "queue"
{
queue.Add(m.GetInt(0), new player()
{
username = m.GetString(1), //Nickname of player
});
}
if(Playing.Count == 0)
{
}
}
发布于 2018-06-24 05:43:49
我相信我已经用下面的代码回答了你的问题。诀窍是一个item is removed from a Dictionary by its key。
if(Playing.Count == 0)
{
Playing.Add(
m.GetInt(0),
new player{ username = m.GetString(1)
}
queue.Remove(m.GetInt(0);
}
还要注意@paparazzo和@Eser的评论,即Dictionary
是错误的选择。Queue
、SortedList
或SortedDictionary
应该更好。
https://stackoverflow.com/questions/51005025
复制相似问题