直接在.cs中写入以下代码即可
//去除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文件中,结果一个也没过滤掉,晕,死,不知道怎么因事,请高手帮助一下啊
19 个解决方案
#1
首先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];
}
然后循环
比较当前这个是不是和下一个一样,一样的话就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
学习了!!
#3
1楼的正解~
#4
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;
}
{
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;
}
#5
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;
}
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;
}
#6
先ding
#7
#8
学习
#9
......还真的不时正确的。
有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;
有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;
#10
我这里有四个listbox,都需要去掉重复项,怎么办
我发的那个成功的代码,就去除了两个listbox的重复项,显得很简单,再一个,两个数据表的结构也差不多,但是为什么不对呢,大家都说一楼的正确,难道有多少个listbox就要写多少段程序?
有没有更简单,易明白的程序啊
我发的那个成功的代码,就去除了两个listbox的重复项,显得很简单,再一个,两个数据表的结构也差不多,但是为什么不对呢,大家都说一楼的正确,难道有多少个listbox就要写多少段程序?
有没有更简单,易明白的程序啊
#11
你可以懒点,把这个方法单独写一个方法,以后有这情况,调用该方法就行了。
Methord(listbox l)
{
......
}
Methord(listbox l)
{
......
}
#12
帮着看看。。。希望大家帮忙啊,眼睛都看花了
#13
你绑定的时候就不要绑重复项啊,干嘛加了再删
#14
要查询数据库的时候用distinct不就没有重复数据??为什么还要再删?
#15
這種想法好,不用雙重循環
#16
虽然一楼的方法,我没有采取,在此也表示感谢,毕竟一楼第一回发错了代码,后来又更改了,但是某些人,学习一楼的方法也无可厚非,究竟是不是正解,我想也没有得到验证吧,最过分的是某些人,明明一楼都说自己代码错了,又重新改动了,某些人啊,还是引用一楼的内容,还高唱正解,真是搞不懂,顶帖就顶帖,不要给人造成误解,你就算是纯粹顶帖,我也会送分给你,可是你是滥竽充数,这难免让我觉得气愤,所以,经过一番思量,对于一楼更改代码后的,又再次引用一楼更新前代码的同志处于无分处理!
#17
没遇到过,一起学习!
#18
//去除listbox中的重复项开始
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j++)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j++)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
#19
//去除listbox中的重复项开始
//刚发错了 是j--
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j--)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
//刚发错了 是j--
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j--)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
#20
#1
首先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];
}
然后循环
比较当前这个是不是和下一个一样,一样的话就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
学习了!!
#3
1楼的正解~
#4
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;
}
{
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;
}
#5
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;
}
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;
}
#6
先ding
#7
#8
学习
#9
......还真的不时正确的。
有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;
有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;
#10
我这里有四个listbox,都需要去掉重复项,怎么办
我发的那个成功的代码,就去除了两个listbox的重复项,显得很简单,再一个,两个数据表的结构也差不多,但是为什么不对呢,大家都说一楼的正确,难道有多少个listbox就要写多少段程序?
有没有更简单,易明白的程序啊
我发的那个成功的代码,就去除了两个listbox的重复项,显得很简单,再一个,两个数据表的结构也差不多,但是为什么不对呢,大家都说一楼的正确,难道有多少个listbox就要写多少段程序?
有没有更简单,易明白的程序啊
#11
你可以懒点,把这个方法单独写一个方法,以后有这情况,调用该方法就行了。
Methord(listbox l)
{
......
}
Methord(listbox l)
{
......
}
#12
帮着看看。。。希望大家帮忙啊,眼睛都看花了
#13
你绑定的时候就不要绑重复项啊,干嘛加了再删
#14
要查询数据库的时候用distinct不就没有重复数据??为什么还要再删?
#15
這種想法好,不用雙重循環
#16
虽然一楼的方法,我没有采取,在此也表示感谢,毕竟一楼第一回发错了代码,后来又更改了,但是某些人,学习一楼的方法也无可厚非,究竟是不是正解,我想也没有得到验证吧,最过分的是某些人,明明一楼都说自己代码错了,又重新改动了,某些人啊,还是引用一楼的内容,还高唱正解,真是搞不懂,顶帖就顶帖,不要给人造成误解,你就算是纯粹顶帖,我也会送分给你,可是你是滥竽充数,这难免让我觉得气愤,所以,经过一番思量,对于一楼更改代码后的,又再次引用一楼更新前代码的同志处于无分处理!
#17
没遇到过,一起学习!
#18
//去除listbox中的重复项开始
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j++)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j++)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
#19
//去除listbox中的重复项开始
//刚发错了 是j--
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j--)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确
//刚发错了 是j--
private void Distinct(ListItemCollection items)
{
for (int i = 0; i < items.Count; i++)
{
for (int j = items.Count - 1; j < items.Count-i; j--)
{
if (items[i].Equals(items[j]))
items.Remove(items[j]);
}
}
}
//去除listbox中的重复项结束
这样才是正确的 如果j++的话 item[j]就是集合前面的数据 应该先删除集合后面的数据 才正确