我在一个名为 current 的变量中有一个巨大的空白值字典,如下所示:
struct movieuser {blah blah blah}
Dictionary<movieuser, float> questions = new Dictionary<movieuser, float>();
所以我正在遍历这本字典,需要填写“答案”,如下所示:
for(var k = questions.Keys.GetEnumerator();k.MoveNext(); )
{
questions[k.Current] = retrieveGuess(k.Current.userID, k.Current.movieID);
}
现在,这不起作用,因为我尝试修改正在循环的字典时得到了 InvalidOperationException。但是,您可以看到代码应该可以正常工作 - 因为我没有添加或删除任何值,只是修改了值。但是,我理解为什么它害怕我尝试这样做。
这样做的首选方法是什么?在不使用迭代器的情况下,我想不出一种方法来遍历字典。
我真的不想创建整个数组的副本,因为它包含大量数据并且会像感恩节一样吃掉我的内存。
谢谢,戴夫