gpt4 book ai didi

c# - C# 中有类似可扩展队列的东西吗?

转载 作者:行者123 更新时间:2023-11-30 21:18:12 25 4
gpt4 key购买 nike

我有一组 ID,我对其进行一些操作:

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 循环中处理?

最佳答案

您正在做的是对不断变化的集合使用迭代器。这是一种不好的做法,因为某些集合在执行此操作时会抛出异常(例如,集合在枚举期间不应更改)。

使用以下方法,它也使用新项目:

while (queue.Count > 0)
{
DoSomeWork(queue.Dequeue());
}

关于c# - C# 中有类似可扩展队列的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4353546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com