我有一个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
如果在比较期间发现完全匹配,则新条目是重复的,因此之后不会添加。
这似乎是一项非常艰巨的努力,我会发现这是一个并非如此罕见的功能。还有其他方法可以达到这个目的吗?
答案 0 :(得分:0)
ListView
中的项目通常代表某个对象。我通常做的是在将对象添加到列表时将该对象(或至少一些标识该对象的值)分配给相应ListViewItem
的{{3}}属性。这样,您可以获得一个非常简单的设置,您可以通过获取Tag
属性中的值来比较项目,并对这些对象执行比较,而不是对它们进行列表视图表示。
答案 1 :(得分:0)
文件系统本身只使用文件名来测试唯一性,所以你应该这样做,也不需要比较子项。