我是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
?
我在代码中做错了吗?请建议。
答案 0 :(得分:2)
ListView的Items
包含ListViewItem
类型的对象。因此,将它们与ListBox的Items
中的对象进行比较是没有用的
如果你想比较他们的文字,你必须写这样的东西:
if (lvEmpDetails.Items[intSubCount].Text == (string)lbxEmpName.Items[intCount])
{
// Do something here
}
请注意,ListViewItem
可以有多个子项,其Text
属性会返回其数据的第一列。
答案 1 :(得分:1)
比较要比较的字符串值而不是对象本身。