首页 新闻 会员 周边 捐助

C#中if中左右值相等,但bool值为false,求解,谢谢!

0
悬赏园豆:50 [已解决问题] 解决于 2024-08-26 23:16

各位大佬,我想在winform右边listbox2中,获得左边listbox1中选中的条目。进行获取唯一的条目时,if当中的语句中listBox1.SelectedItem.ToString()和listBox2.Items[i].ToString()的值都为a,但为什么listBox1.SelectedItems.ToString()==listBox2.Items[i].ToString()的bool值为false?

谢谢解疑。

以下是代码

 1 private void button1_Click(object sender, EventArgs e)
 2         {
 3             if (listBox2.Items.Count==0)
 4             {
 5                 listBox2.Items.Add(listBox1.SelectedItem.ToString());
 6             }
 7             else
 8             {
 9                 for (int i = 0; i < listBox2.Items.Count; i++)
10                 {
11                     if (listBox1.SelectedItems.ToString()==listBox2.Items[i].ToString())
12                     {
13                         MessageBox.Show("Test");
14                     }
15                     else
16                     {
17                         listBox2.Items.Add(listBox1.SelectedItem.ToString());
18                     }
19                 }
20             }
21         }

xcbjnyx的主页 xcbjnyx | 菜鸟二级 | 园豆:215
提问于:2024-08-26 14:55
< >
分享
最佳答案
1

你的逻辑存在点问题,改为一下代码
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < listBox1.SelectedItems.Count; i++)
{
if (!listBox2.Items.Contains(listBox1.SelectedItems[i]))
{
listBox2.Items.Add(listBox1.SelectedItems[i]);
}
else
{
MessageBox.Show("listBox2已经存在值:" + listBox1.SelectedItems[i]);
}
}
}

收获园豆:25
lf03 | 小虾三级 |园豆:549 | 2024-08-26 16:06

listBox1.SelectedItems.ToString()==listBox2.Items[i].ToString()这句代码永远不会相等
因为listBox1.SelectedItems.ToString()拿到的不是选中的值

lf03 | 园豆:549 (小虾三级) | 2024-08-26 16:10

@lf03: 谢谢,我了解我问题出在哪里了。

xcbjnyx | 园豆:215 (菜鸟二级) | 2024-08-26 23:14
其他回答(1)
2

if (listBox1.SelectedItems.ToString()listBox2.Items[i].ToString())
多了个s
应该是
if (listBox1.SelectedItem.ToString()
listBox2.Items[i].ToString())

收获园豆:25
泡沫游走 | 园豆:273 (菜鸟二级) | 2024-08-26 16:07

谢谢,醍醐灌顶啊,真是谢谢了

支持(0) 反对(0) xcbjnyx | 园豆:215 (菜鸟二级) | 2024-08-26 23:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册