比较Windows.Forms.ListViewItem项目的唯一性

时间:2011-04-15 09:28:48

标签: c# .net listview

我有一个Windows.Forms.ListView,用户可以在其中添加和删除条目。特别是,那些是用户可以通过对话框选择的文件(具有属性)。现在,我想检查从文件选择器获取的文件名/条目是否已经在列表中;换句话说,ListView中只有唯一的项目。

我找不到任何方法来比较ListViewItems来检查我的ListView中是否已经存在完全相同的条目和信息。我现在看到的唯一方法是:

> Loop through the files I get from the picker (multiselect is true)
 > Loop through ListView.Items
   compare ListViewItem.Text
   > Loop through ListViewItem.SubItems
     compare .Text

如果在比较期间发现完全匹配,则新条目是重复的,因此之后不会添加。

这似乎是一项非常艰巨的努力,我会发现这是一个并非如此罕见的功能。还有其他方法可以达到这个目的吗?

2 个答案:

答案 0 :(得分:0)

ListView中的项目通常代表某个对象。我通常做的是在将对象添加到列表时将该对象(或至少一些标识该对象的值)分配给相应ListViewItem的{​​{3}}属性。这样,您可以获得一个非常简单的设置,您可以通过获取Tag属性中的值来比较项目,并对这些对象执行比较,而不是对它们进行列表视图表示。

答案 1 :(得分:0)

文件系统本身只使用文件名来测试唯一性,所以你应该这样做,也不需要比较子项。