2

我希望实现一个Queue类型Dictionary<int, string>并能够迭代/入队/出队。

最终需要的是一个queueof int, string,不管它采取什么形式。

到目前为止,我有类似的东西:

  private static Queue<Dictionary<int, string>> requestQueue = new Queue<Dictionary<int, string>>();

  foreach (KeyValuePair<int, string> dictionaryListItem in dictionaryList)
  {
      requestQueue.Enqueue( dictionaryListItem ); // error
  }

但似乎无法加入上述队列。有人知道正确的语法吗?

4

2 回答 2

5

好吧,您有一个字典队列,但请尝试将单个字典值添加到您的队列中。

如果您确实想要一个字典队列,您应该像这样更改您的代码:

requestQueue.Enqueue(dictionaryList);

如果您确实想要一个键值对队列,请将您的队列更改为:

Queue<KeyValuePair<int, string>> requestQueue
于 2013-02-06T10:51:54.723 回答
0

简单的片段:

Queue<KeyValuePair<int, string>> queue = new Queue<KeyValuePair<int, string>>();
void Enqueue()
{
    queue.Enqueue(new KeyValuePair<int, string>(1, "One"));
    queue.Enqueue(new KeyValuePair<int, string>(2, "Two"));
    //..
}
void Dequeue()
{
    while (true)
    {
        var kvp = queue.Dequeue();
        Console.WriteLine(string.Format("key: {0}, value: {1}", kvp.Key, kvp.Value));
    }
    //..
}
于 2013-02-06T11:13:53.770 回答