今天我用foreach语句去迭代Dictionary的时候,发现报错:集合已修改;可能无法执行枚举操作网上搜了一下,发现foreach在迭代的时候,foreach在迭代过程,不可以增加和删除.但是,我试验了,发现还有一个问题:在进行值比较并修正的时候,也会报错,如: 1 foreach (KeyVa...
foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等)。要避免这个问题,就应该使用for循环。 之前没有考虑过对collection类型对象操作时for 和foreach的区别,总感觉foreach更方便一些。今天写了个FOREARCH循环来操作删除某个 collection的元素...
分类:
其他好文 时间:
2014-12-19 12:03:52
阅读次数:
124
转自:http://bbs.csdn.net/topics/370152213#2楼foreach 值是只读的。所以只能用 forDictionaryd=newDictionary();d.Add(1,1);vartarget=d.ToList();for(intindex=0;index<targ...
分类:
其他好文 时间:
2014-11-07 16:42:47
阅读次数:
135
对于区间DP,首先枚举要进行操作的区间长,然后枚举操作区间的左端点,用左端点和区间长算出右端点,然后枚举区间中的点进行DP操作就好了。下面是模式代码:首先是P的:Forp:=1tondo//p是区间长度,作为阶段。fori:=1tondo//i是穷举的区间的起点beginj:=i+p-1;//j是区...
分类:
其他好文 时间:
2014-10-20 09:51:12
阅读次数:
169
第一题:题目大意:给出一个n位01串,要么不动它,要么把它删掉一个字符,要么插入一个字符(0或1),要么把一个1变成0,.使得有1的位置号的总和是n+1的倍数,或者是0。解题过程:1.直接枚举操作即可,并且先预处理出后i位1的位置和 以及后i位有多少个1,这样每次枚举插入或者删除的时候就不用重新去统...
分类:
其他好文 时间:
2014-10-14 18:30:29
阅读次数:
170
这两天在优化升级公司的一个业务系统时,更改了一下窗体关闭事件中的一句代码,由system.Enviromen.Exit(0)改为了Application.Exit();但是这时候问题就出现了,当点击系统右上角关闭按钮的时候,会爆出“集合已修改,可能无法执行枚举操作”的异常。如下图所示: 这是什么.....
分类:
其他好文 时间:
2014-10-13 13:43:10
阅读次数:
149
关键代码: using System;using System.Collections;using System.Collections.Generic;using System.ComponentModel;using System.Reflection;namespace CSharpUtilH...
分类:
其他好文 时间:
2014-06-28 13:08:37
阅读次数:
297