我在字典queryset2 = []
try:
qs = A.objects.all().values('location_id')
queryset2 = B.objects.filter(id__in=qs)
print queryset2
self.fields['location'].queryset = queryset2
上进行迭代,并修改字典。显然,我得到了一个例外,即该集合已被修改。我怎样才能防止这种情况发生?
Dictionary<double, int> diametersAndQuantities
答案 0 :(得分:2)
您可以创建KeyValuePair
的临时列表来迭代并仍然更新字典。
foreach (var diametersAndQuantity in diametersAndQuantities.ToList())
{
// some operations here
// update
diametersAndQuantities[diametersAndQuantity.Key] = n;
}
答案 1 :(得分:-1)
您可以使用ToList()来获取要评估的枚举 类似于接受的答案 - 也许更快一点 应该使用更少的内存
Dictionary<int, int> dic = new Dictionary<int, int>() { { 1, 2 }, { 2, 3 }, { 3, 2 } };
foreach (int value in dic.Values)
Debug.WriteLine(value);
foreach (int key in dic.Keys.ToList())
dic[key] = 12;
foreach (int value in dic.Values)
Debug.WriteLine(value);
Debug.WriteLine("done");