for (int i = 0; i < this.listView1.SelectedItems.Count; i++)
{
this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
i--;
}
麻烦大家解释一下为什么要I--后又I++
{
this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
i--;
}
麻烦大家解释一下为什么要I--后又I++
貌似这个写法是我喜欢干的事情,你再哪里看的什么源码?
完全可以这样写
for (int i = 0; i < this.listView1.SelectedItems.Count;)
{
this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
}
或
for (int i = this.listView1.SelectedItems.Count - 1; i >= 0 ; i--)
{
this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
}
应该是将 listView1 中被选中的项目从第一个开始删除 被删掉的是第一个元素,原来的第二个就变成了 第一个了 所以要--
这么写代码 有点可怕
this.listView1.Items.Remove(this.listView1.SelectedItems[0]);
for(int i = this.listView1.SelectedItems.Count ; i >=0 ; i --)
{
this.listView1.Items.Remove(this.listView1.SelectItems[i]);
}
有点听不懂是吧,举个例子
一家人有4个儿子,先把老大赶出家门,然后家里就3个儿子了,自然而然老二成了老大,就是把老二+1变成了老大,然后再+1继续把老二(也就是现在的老大了)赶走,依次类推
{
this.listView1.Items.Remove(this.listView1.SelectedItems[i]);
i--;
}
第一眼看上去怪怪的这个代码要么不运行,要么只运行一次,要么S循环
把索引更改一道貌似我不喜欢这么玩,这样太搅脑汁了
从前往后一个一个删除元素,每次总是删除this.listView1.SelectedItems[0]