根据索引将ListBox项与ListView项进行比较

时间:2012-10-25 08:16:50

标签: c# listview listbox

我是c#的新手。在我的项目中,我有两个控件ListBox和ListView

ListBox --> lbxEmpName
ListView --> lvEmpDetails

我尝试了以下代码:

     if (lvEmpDetails.Items.Count > 0)
       {
           for (int intCount = 0; intCount < lbxEmpName.Items.Count; intCount++)
           {
              for (int intSubCount = 0; intSubCount < lvEmpDetails.Items.Count; intSubCount++)
              {
                 if (lvEmpDetails.Items[intSubCount].Equals(lbxEmpName.Items[intCount]))
                 {
                    lbxEmpName.Items.Remove(lbxEmpName.Items[intCount]);
                 }
              }
           }
       }

如果我运行上面的代码,ListView项和ListBox项之间没有匹配(事实上必须有一些匹配)。当我调试我的代码时,我看到了下面的内容:它是在说SelectedItem而我在这里Items(这就是为什么我的程序不匹配项目)
为什么它显示SelectedItem = ""而不是Items?  我在代码中做错了吗?请建议。

enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

ListView的Items包含ListViewItem类型的对象。因此,将它们与ListBox的Items中的对象进行比较是没有用的 如果你想比较他们的文字,你必须写这样的东西:

if (lvEmpDetails.Items[intSubCount].Text == (string)lbxEmpName.Items[intCount])
{
     // Do something here
}

请注意,ListViewItem可以有多个子项,其Text属性会返回其数据的第一列。

答案 1 :(得分:1)

比较要比较的字符串值而不是对象本身。