我正在使用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);
}
}
}