为什么foreach循环比集合中的项目数迭代更多次

时间:2018-06-25 11:32:04

标签: multithreading dictionary c#-4.0 foreach

我正在使用C#事件模型遍历字典中的项目,并列出每个键的项目列表。

Dictionary<string, dynamic> eventDictionary = new Dictionary<string, dynamic>();

当特定键的列表中有多个项目时,循环会比列表中的项目数多重复一个。例如,如果某个键有3个项目,则foreach循环迭代4次。我想知道为什么这个循环行为异常。我在此代码中使用了不同的线程,是否就是因为这个原因。

if (eventDictionary.ContainsKey(minute))
    {
        if (eventDictionary[minute].Count > 1)
        {
            foreach (var e in eventDictionary[minute]) //if there are 3 items in eventDictionary[minute], the loop iterates 4 times
            {
                await OnEventFoundAsync(e, matchId); 
            }
        }
    }

0 个答案:

没有答案