【问题标题】:How would I implement a Queue of type Dictionary<int, string> and iterate/enqueue/dequeue in C#如何在 C# 中实现 Dictionary<int, string> 类型的队列和迭代/入队/出队
【发布时间】:2013-01-21 12:57:47
【问题描述】:

我希望实现 Dictionary&lt;int, string&gt; 类型的 Queue 并能够迭代/入队/出队。

最终需要的是queueintstring,无论它采取何种形式。

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

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

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

但似乎无法与上述内容一起排队。有人知道正确的语法吗?

【问题讨论】:

  • 你想做什么?语法简单,但代码没有意义。
  • 您正在尝试将其他类型加入队列。 KeyValuePair&lt;TKey, TValue&gt;Dictionary&lt;TKey, TValue&gt; 不同。
  • @jon 我试图简单地拥有一个 int、string 队列
  • @RodgersandHammertime:那你应该写Queue&lt;Tuple&lt;int, string&gt;&gt;Queue&lt;KeyValuePair&lt;int, string&gt;&gt;

标签: c# types dictionary queue


【解决方案1】:

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

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

requestQueue.Enqueue(dictionaryList);

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

Queue<KeyValuePair<int, string>> requestQueue

【讨论】:

    【解决方案2】:

    简单的sn-p:

    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));
        }
        //..
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多