我有一個集ID上,我做了一些操作:C#中有沒有類似可擴展隊列的東西?
Queue<string> queue = new Queue<string>();
queue.Enqueue("1");
queue.Enqueue("2");
...
queue.Enqueue("10");
foreach (string id in queue)
{
DoSomeWork(id);
}
static void DoSomeWork(string id)
{
// Do some work and oooo there are new ids which should also be processed :)
foreach(string newID in newIDs)
{
if(!queue.Contains(newID)) queue.Enqueue(newID);
}
}
是否有可能增加一些新的項目,在DoSomeWork()
queue
這也將處理貝主要的foreach循環?
將如何與一個HashSet這項工作? –
Makara
2010-12-04 12:56:19
@Makara添加了一個例子,我使用Queue來保存未處理的項目,並使用HashSet來避免重複項目。 – CodesInChaos 2010-12-04 12:59:40