如何删除Listview中的重复项? [英] How to remove Duplicate items in Listview?

查看:213
本文介绍了如何删除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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆