首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

字典的遍历有关问题

2012-01-28 
字典的遍历问题//我有一个数据结构如下Dictionaryint,Dictionarystring,decimal tmpGetItemTimenew D

字典的遍历问题
//我有一个数据结构如下
  Dictionary<int,Dictionary<string,decimal>> tmpGetItemTime=new Dictionary<int,Dictionary<string,decimal>>()
  //如果加入了正确的数据后我进行以下的遍历,最后提示出错
  //出错提示是:集合已修改;可能无法执行枚举操作
  foreach (int p in tmpGetItemTime.Keys)
  {
  for (int i = 0; i < podetailDatas.GetLength(0); i++)
  {
  if (p == (int)podetailDatas[i, 2])
  {
  foreach (string ks in tmpGetItemTime[p].Keys)
  {
  tmpGetItemTime[p][ks] *= histCountInt[i];
  }
  }
  break;
  }
  }
  //请指教!谢谢!

[解决办法]
问题呢?+
[解决办法]
没有认真看你的代码,像是O(n^3)的操作。

但异常可以这样避免(作一个keys的拷贝):

C# code
foreach (int p in new List<int>(tmpGetItemTime.Keys))                         //<--{    for (int i = 0; i < podetailDatas.GetLength(0); i++)    {        if (p == (int)podetailDatas[i, 2])        {            foreach (string ks in new List<string>(tmpGetItemTime[p].Keys))   //<--            {                tmpGetItemTime[p][ks] *= histCountInt[i];            }        }        break;    }}
[解决办法]
哇 嵌套。。。

5555 我们这破书里面怎么没提过

嵌套使用

热点排行