我有一个场景,我需要在处理后尽快删除队列中的项目.我知道我不能在循环中从一个集合中删除一个项目但是想知道是否可以使用枚举器等完成某些事情......
这只是一个基本的例子,抛出错误"在实例化枚举数后修改了集合".
有什么建议?非常感谢!!!
代码如下:
class Program
{
static void Main()
{
Queue<Order> queueList = GetQueueList();
foreach (Order orderItem in queueList)
{
Save(orderItem);
Console.WriteLine("Id :{0} Name {1} ", orderItem.Id, orderItem.Name);
queueList.Dequeue();
}
Console.Read();
}
private static void Save(Order orderItem)
{
//we are pretending to save or do something.
}
private static Queue<Order>GetQueueList()
{
Queue<Order> orderQueue = new Queue<Order>();
orderQueue.Enqueue(new Order { Id = 1, Name = "Order 1" });
orderQueue.Enqueue(new Order { Id = 1, Name = "Order 2" });
orderQueue.Enqueue(new …Run Code Online (Sandbox Code Playgroud) 我遇到过一种情况,由于我调用的其他一些代码区域无法复制Dictionary<TKey, TValue>它返回的内容,因此会出现并发问题:Dictionary似乎包含非法的空键.
我已经修复了底层错误,但为了帮助识别这个问题,如果它将来再次出现,我会添加一些代码,在循环中显式检查null键,处理返回的字典并在事情发生之前抛出进一步.我不确定要抛出哪个异常类,或者如果我定义一个新类,我要确定哪个异类.