我有一些代码可以在字典上工作,并使用简单的linq函数来查找字典中的一些键值但是最近我收到以下错误...
InvalidOperationException: Operation is not valid due to the current state of the object
System.Linq.Enumerable.Iterate[KeyValuePair`2,Int32] (IEnumerable`1 source, Int32 initValue, System.Func`3 selector)
如何确认操作是否安全,从而避免此错误?
导致问题的代码示例...
public void UpdateBounds()
{
lock (Voxels)
{
Start = new IntVector3(Voxels.Min(v => v.Key.X), Voxels.Min(v => v.Key.Y), Voxels.Min(v => v.Key.Z));
End = new IntVector3(Voxels.Max(v => v.Key.X), Voxels.Max(v => v.Key.Y), Voxels.Max(v => v.Key.Z));
}
}
答案 0 :(得分:2)
看起来你正在对一个空的Dictionary对象进行操作。
在执行该语句之前检查它是否包含任何内容。 Dictionary.Count
是你的家伙。