我正在创建一个允许用户存储有关其类的信息的应用程序。我的应用程序中有一个按钮,允许用户输入信息,如果它与listBox
中的任何项目匹配,那么它应该显示有关它的信息。
但我只能让它适用于listBox
的特定项目位置,例如位置[0]等。
我的目标是如何比较listBox
中的所有项目。任何帮助,将不胜感激。谢谢。
private void button3_Click(object sender, EventArgs e)
{
if (listBox2.Items[0].ToString() == "PersonalInfo")
{
label.Text = "test";
}
}
答案 0 :(得分:6)
写一个循环来检查每个项目
foreach(var item in listBox2.Items)
{
if (item.ToString()== "PersonalInfo")
{
label.Text = "test";
break; // we don't want to run the loop any more. let's go out
}
}
答案 1 :(得分:6)
你已经硬编码检查Items[0]
。您需要循环遍历列表中的所有项目,而不是仅查看一个项目。尝试这样的事情:
foreach(var item in listBox2.Items)
{
if(item.ToString() == stringToMatch)
{
label.Text = "Found a match";
}
}
一个替代的,更简单的实现(如果/当它找到匹配而不是继续检查每个项目时将停止)将是
if(listBox2.Items.Any(item => item.ToString() == stringToMatch))
{
label.Text = "Found a match";
}
答案 2 :(得分:5)
你可以使用LINQ ......这样的事情:
if (listBox2.Items
.Cast<object>()
.Select(x => x.ToString())
.Contains("PersonalInfo"))
{
label.Text = "test";
}
或者,如果您想获得第一场比赛的详细信息:
var match = listBox2.Items
.Cast<object>()
.FirstOrDefault(x => x.ToString() == "PersonalInfo");
if (match != null)
{
// Use match here
}