我认为这是一个延迟执行问题,但也许我有点错过了重点
因此我有一个循环
List<int> processed = new List<int>()
foreach(KeyValuePair<int,bool> tbl1 in tables.Where(z=>!processed.Contains(z.Key))){
//do some stuff...etc
processed.Add(someInt);
}
我觉得这很危险,但实际上延迟执行是否使这项工作有效?它实际上似乎在迭代我有点温和地说'如预期'但是..问题是我想这大概是一个坏主意,通常弄乱你正在迭代的集合是坏的..
想法?谢谢
确定清楚..问题是
说桌子是这样填充的
1,真 2,假 3,假 4,假 5,假 6,假
第一圈我在 tbl1 中得到 {1,true} 并在第二圈中将 2 添加到已处理列表中我将在 tbl1 中得到 {3,false} 然后将 3 和 4 添加到已处理的第 3 圈中我将得到 {5, tbl1 中的 false} 这是预期的吗?
如果我在第 4 圈将 6 添加到已处理,我会在下一次再次获得 {5,false} 吗?这又是预期的,我想我只是觉得这有点令人困惑并觉得它很危险,但可能这只是为了我 - 因为它并不完全有意义
n