我在object FileInfo[]中有一个文件数组。
在我的服务中,我目前正在遍历文件并处理它们。
我希望循环遍历这些文件,并在处理它们时将它们从集合中删除。
我认为队列是最理想的,但是我如何循环队列集合呢?
(以前从未在C#中使用过队列)
发布于 2009-02-18 15:49:08
using System.Collections.Generic;
private void DoSomething(FileInfo [] files)
{
Queue<FileInfo> f = new Queue<FileInfo>(files);
while (f.Count > 0) {
FileInfo current = f.Dequeue();
// Process 'current'
}
}发布于 2009-02-18 15:48:04
迭代队列的方式与迭代C#中大多数其他集合的方式相同-使用foreach
foreach (FileInfo file in queue)
{
// Do stuff
}但是,如果使用上面的代码,就不能添加到正文中的队列。如果你想这样做,你应该这样做:
while (queue.Count > 0)
{
FileInfo file = queue.Dequeue();
// You can still use queue.Enqueue() here
}(这两种方法都假设queue的类型为Queue<FileInfo>。)
发布于 2009-02-18 15:48:36
使用队列,当您处理项目时,将项目从队列中弹出。
while (queue.Count > 0) {
T item = queue.Dequeue()
ProcessItem(item)
}此外,queue还实现了IEnumberable,因此您也可以使用foreach,但(通常)您不能修改正在枚举的集合。
https://stackoverflow.com/questions/561601
复制相似问题