如题!!!
需要考虑到大批量数据的处理,
给分标准是:比这个方法效率高!!!!
private void Distinct(ListItemCollection items)
    ...{
        for (int i = 0; i < items.Count; i++)
        ...{
            for (int j = i + 1; j < items.Count; j++)
            ...{
                if (items[i].Equals(items[j]))
                    items.Remove(items[j]);
            }        }
    }

解决方案 »

  1.   


    语法高效,不代码性能高效。最好是在添加到List的时候处理。
      

  2.   

    foreach(ListItem   listItem   in   ListBox1.Items) 

    ListItem   li   =   new   ListItem(tempString,tempString); 
    if(ListBox1.Items.Contains(li)) 


    使用list的distinct等删除重复值
      

  3.   

    第一次听到这种说法linq 主要目的还是代码简洁 方便维护
    至于性能方面 就交给自定义方法吧
      

  4.   


    object[] items =
        this.listBox1.Items.Cast<object>().Distinct().ToArray();this.listBox1.Items.Clear();
    this.listBox1.Items.AddRange(items);
      

  5.   


    private void Distinct(ListItemCollection items)
      ...{
            int count = items.Count;
      for (int i = 0; i < count; i++)
      ...{
      for (int j = items.Count; j > i; j--)
      ...{
      if (items[i].Equals(items[j]))
      items.Remove(items[j]);
      }减少items.Count的运算次数
      

  6.   

            ListItemCollection list = null;
            ListBox newListBox = new ListBox();
            for(int i=0;i<ListBox1.Items.Count;i++)
            {
                if (newListBox.Items.Count == 0)
                {
                    newListBox.Items.Add(ListBox1.Items[i]);
                }
                else
                {
                    list = newListBox.Items;
                    ListItem item = ListBox1.Items[i];
                    if (list.IndexOf(list.FindByValue(item.Value)) == -1)
                    {
                        newListBox.Items.Add(item);
                    }
                }
            }
            ListBox1.Items.Clear();
            ListBox1 = newListBox;