去除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];
}
[解决办法]
[解决办法]
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
[解决办法]
[解决办法]
......还真的不时正确的。
有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不就没有重复数据??为什么还要再删?