如何删除Listview中的重复项? [英] How to remove Duplicate items in Listview?
本文介绍了如何删除Listview中的重复项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
int i;
for (i = 0 ; i < ; = dt.Rows.Count - 1 ; i ++)
{
listView2.Items.Add(dt) .Rows [i] .ItemArray [ 0 ]。ToString());
listView2.Items [i] .SubItems.Add(dt.Rows [i] .ItemArray [ 1 ]。ToString());
}
for (i = listView2.Items.Count - 1 ; i > = 0 ; i--)
{
if (listView2.Items.IndexOf(listView2.Items [i] .ToString())< i)
listView2.Items.RemoveAt(i);
}
解决方案
尝试这样的事情:
// 标签重复删除
列表与LT;项目> toRemove = new List< item>();
foreach (项目1 listView.Items)
{
foreach (项目2 in listView.Items)
{
// 比较两个项目
if ( item1.Tag == item2.Tag)
toRemove.Add(item2);
}
}
// 删除重复项
foreach (项目 in toRemove)
{
listView。 Items.Remove(项目);
} < / item > < / item >
可能重复的问题...在代码项目中查看此问题。此处也可以使用解决方案
如何从C#.Net中的listView中删除重复的项目? [< a href =http://www.codeproject.com/Questions/506309/Howplustoplusremoveplusduplicateplusitemsplusfromptarget =_ blanktitle =New Window> ^ ]
希望这个帮助...
根据你想要比较的内容,你可以使用文字或标签(标签是更好的选择) 。
var tags = 新 HashSet< object>();
var duplicates = new List< ListViewItem>();
foreach (ListViewItem item in listView.Items)
{
// 如果HashSet.Add()已包含密钥,则返回false。
if (!tags.Add(item.Tag)
duplicates.Add(item);
}
foreach (ListViewItem项 重复项){
if (listView.Items.Contains(item)){
listView.Items.Remove(item);
}
}
int i;
for (i = 0; i <= dt.Rows.Count - 1; i++)
{
listView2.Items.Add(dt.Rows[i].ItemArray[0].ToString());
listView2.Items[i].SubItems.Add(dt.Rows[i].ItemArray[1].ToString());
}
for (i = listView2.Items.Count - 1; i >= 0; i--)
{
if (listView2.Items.IndexOf(listView2.Items[i].ToString()) < i)
listView2.Items.RemoveAt(i);
}
解决方案
Try something like this:
//tag duplicates for removal List<item> toRemove = new List<item>(); foreach(Item item1 in listView.Items) { foreach(Item item2 in listView.Items) { //compare the two items if(item1.Tag == item2.Tag) toRemove.Add(item2); } } //remove duplicates foreach(Item item in toRemove) { listView.Items.Remove(item); }</item></item>
Possibly Duplicate Question...See this Question on code project..Solution also available here
How to remove duplicate items from listView in C#.Net ?[^]
Hope this help...
Depending on what you want to compare, you can use Text or Tag (tag being the better choice).
var tags = new HashSet<object>(); var duplicates = new List<ListViewItem>(); foreach(ListViewItem item in listView.Items) { // HashSet.Add() returns false if it already contains the key. if(!tags.Add(item.Tag) duplicates.Add(item); } foreach(ListViewItem item in duplicates) { if (listView.Items.Contains(item)) { listView.Items.Remove(item); } }
这篇关于如何删除Listview中的重复项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文