就是对于一个记录集的多条数据删除问题,也是经常出现问题的地方(论坛上经常问类似的问题),由于在一些记录集中进行删除的时候,在删除操作之后相应的索引也发生了变化,这时候的删除要反过来进行删除,大致形式如下。
// Use "for" to loop an arraylist
for( int i = arrInt.Count - 1; i >=0; i-- )
{
int n = ( int ) arrInt;
if( n == 5 )
arrInt.RemoveAt( i ); // Remove data here
Debug.WriteLine( n.ToString() );
}
除了这两个地方外,foreach可以基本适用于任何循环,因此对于循环的编写要尽量使用foreach,因为它会使你的代码清晰简洁,又不失高效。
对,有些地方只能用for,那个帖子里有,foreach的循环体里不能对索引进行值修改
for(int i=0; i<100; i++)
{
i += 3; //这里关键,这个修改 i 的操作在foreach就无法进行
console.write("as");
}作者: 罗志强 时间: 2013-1-26 12:03
至于谁快,我做了一个小实验
代码
ArrayList list = new ArrayList();
Stopwatch st = new Stopwatch();
for (int i = 0; i < 100000; i++)
{
list.Add("aa");
}
st.Start();
for (int i = 0; i < list.Count; i++)
{