读书人

去除listbox中重复项具有成功案例的

发布时间: 2012-03-17 19:06:27 作者: rapoo

去除listbox中重复项,具有成功案例的情况下,又失败了,顶帖也送分了
原来,我做了一个页面,需要去除listbox中的重复项,页面上有两个listbox,其中一个需要去除重复项
直接在.cs中写入以下代码即可

C# code
//去除listbox中的重复项开始    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]);            }        }    }    //去除listbox中的重复项结束



但是我又做一个页面,有四个listbox,其中三个也需要去除重复项,结果把上面这段代码复制到相应的.cs文件中,结果一个也没过滤掉,晕,死,不知道怎么因事,请高手帮助一下啊

[解决办法]
首先listBox1.Sorted = true;
然后循环
比较当前这个是不是和下一个一样,一样的话就remove
object o = listBox1.Items[0];
for (int i = 1; i < listBox1.Items.Count; i++)
{
if (o.Equals(listBox1[i]))
listBox1.Items.Remove(i);
else
o = listBox1.Items[i];

}

[解决办法]
探讨
首先listBox1.Sorted = true;
然后循环
比较当前这个是不是和下一个一样,一样的话就remove
object o = listBox1.Items[0];
for (int i = 1; i < listBox1.Items.Count; i++)
{
if (o.Equals(listBox1[i]))
listBox1.Items.Remove(i);
else
o = listBox1.Items[i];

}

[解决办法]
1楼的正解~

[解决办法]
private void Deleted(object obj)
{
System .Collections .ArrayList list=new System.Collections.ArrayList ();
list .Add (((ListBox )obj).Items [0]);
for (int i = 1; i < listBox1.Items.Count; i++)
{
if (list.Contains(listBox1.Items[i]))
continue;
else
list.Add(listBox1.Items[i]);
}

listBox1.DataSource = list;

}
[解决办法]
Deleted(this.listBox1);
private void Deleted(object obj)
{
System .Collections .ArrayList list=new System.Collections.ArrayList ();
list .Add (((ListBox )obj).Items [0]);
for (int i = 1; i < listBox1.Items.Count; i++)
{
if (list.Contains(listBox1.Items[i]))
continue;
else
list.Add(listBox1.Items[i]);
}

listBox1.DataSource = list;

}
[解决办法]
先ding
[解决办法]
探讨
首先listBox1.Sorted = true;
然后循环
比较当前这个是不是和下一个一样,一样的话就remove
object o = listBox1.Items[0];
for (int i = 1; i < listBox1.Items.Count; i++)
{
if (o.Equals(listBox1[i]))
listBox1.Items.Remove(i);
else
o = listBox1.Items[i];

}

[解决办法]


......还真的不时正确的。
有2个地方打错了 哈哈,谅解

listBox1.Sorted = true;
object o = listBox1.Items[0];
List<object> list = new List<object>();
list.Add(o);
for (int i = 1; i < listBox1.Items.Count; i++)
{
if (o.Equals(listBox1.Items[i]))
listBox1.Items.RemoveAt(i);
else
{
o = listBox1.Items[i];
list.Add(o);
}

}
listBox1.Items.Clear();
listBox1.DataSource = list;
[解决办法]
你可以懒点,把这个方法单独写一个方法,以后有这情况,调用该方法就行了。
Methord(listbox l)
{
......
}
[解决办法]
帮着看看。。。希望大家帮忙啊,眼睛都看花了
[解决办法]
你绑定的时候就不要绑重复项啊,干嘛加了再删
[解决办法]
要查询数据库的时候用distinct不就没有重复数据??为什么还要再删?

读书人网 >C#

热点推荐