C#中的循环队列

5
     public List<Transfer> Queue
     {
         get { return _queue; }
         set { _queue = value; }
     }
    TransferFromQueue()
    {
         // Do stuff
         // Remove transfered item from Queue
    }

我的队列是一个变量,不断添加和删除项目。

我正在寻找一种方法,在列表中存在项目时执行TransferFromQueue()。虽然它不应该同时运行多个TransferFromQueue()实例。

当队列中存在项目时,如何逐一循环这个队列?


为什么不使用 Queue<Transfer> 呢? - Tim Schmelter
不确定,它是否比List<>有任何优势? - user1071461
是的,我编辑了我的答案并提供了一个链接到一个针对这个问题的问题。 - Tim Schmelter
1个回答

10

为什么不使用一个Queue<Transfer>呢?它似乎正是您想要的。

private Queue<Transfer> _queue = new Queue<Transfer>();
public Queue<Transfer> Queue
{
    get { return _queue; }
    set { _queue = value; }
}

void TransferFromQueue()
{
    while(Queue.Count > 0)
    {
        Transfer current = Queue.Dequeue(); // removed
        // use Queue.Peek() if you want to look at it witout removing it
        // Do stuff
    }
}

相关:

队列<T> vs 列表<T>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接