如何检查字典/集合是否可以迭代?

时间:2014-10-27 18:44:27

标签: c# linq

我有一些代码可以在字典上工作,并使用简单的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));
    }
}

1 个答案:

答案 0 :(得分:2)

看起来你正在对一个空的Dictionary对象进行操作。

在执行该语句之前检查它是否包含任何内容。 Dictionary.Count是你的家伙。