把listbox1当中,不等于"aaa"的项删除我的写法是这样的:
 private void button2_Click(object sender, EventArgs e)
    {
       for (int i = 0; i < listBox1.Items.Count; i++)
           {              if (listBox1.Items[i].ToString() != "aa")
                {                    listBox1.Items.Remove(listBox1.Items[i]);
                }
           }
    }但这样做,就出现了问题,一下子删不完,因为,边删,Count的数字就会变化,要多点几次button,才能删完,能不能用foreach,请大师指教

解决方案 »

  1.   

    先查找,再删除List<object> aaaItems = new List<object>();
    foreach (object s in listBox1.Items)
    {
        if (s.ToString() == "aaa")
        {        aaaItems.Add(s);
        }
    }foreach (object o in aaaItems)
    {
        listBox1.Items.Remove(o);
    }
      

  2.   

    int i = this.listBox1.Items.Count-1;
    for (int ii = i; ii >= 0; ii--)
    {
      if (this.listBox1.Items[ii].ToString() != "aaa")
      {
        this.listBox1.Items.RemoveAt(ii);
      }
    }