C#:带有listView的if-else语句
我试图做的是检查listView(第5列)是否包含任何带有“Yes”字样的项。如果它写“很棒”,如果列中根本不包含任何带有“是”字样的项目,则写“糟糕” 现在发生的是,我的程序只写了Bad(else语句),即使列中确实包含一个有“Yes”字样的项 我怎样才能解决这个问题C#:带有listView的if-else语句,c#,forms,listview,if-statement,C#,Forms,Listview,If Statement,我试图做的是检查listView(第5列)是否包含任何带有“Yes”字样的项。如果它写“很棒”,如果列中根本不包含任何带有“是”字样的项目,则写“糟糕” 现在发生的是,我的程序只写了Bad(else语句),即使列中确实包含一个有“Yes”字样的项 我怎样才能解决这个问题 foreach (ListViewItem item in listView1.Items) { if (item.SubItems[5].Text.Contains("Yes")) { // Do yo
foreach (ListViewItem item in listView1.Items) {
if (item.SubItems[5].Text.Contains("Yes")) {
// Do your work here
labelContainsVideo2.Text = "GREAT";
labelContainsVideo2.ForeColor = System.Drawing.Color.Green;
} else {
labelContainsVideo2.Text = "BAD";
labelContainsVideo2.ForeColor = System.Drawing.Color.Red;
}
}
也许是为了这个案子
foreach (ListViewItem item in listView1.Items)
{
if (item.SubItems[5].Text.ToUpper().Contains("YES"))
{
// Do your work here
labelContainsVideo2.Text = "GREAT";
labelContainsVideo2.ForeColor = System.Drawing.Color.Green;
}
else
{
labelContainsVideo2.Text = "BAD";
labelContainsVideo2.ForeColor = System.Drawing.Color.Red;
}
}
此外,请记住,这样它将只计算最后一个项
。如果要显示所有项目状态,则应具有标签数组或其他内容。如果你想知道任何项目是否包含“是”,你应该按照@ZombieSheep的答案来回答。也许是这样
foreach (ListViewItem item in listView1.Items)
{
if (item.SubItems[5].Text.ToUpper().Contains("YES"))
{
// Do your work here
labelContainsVideo2.Text = "GREAT";
labelContainsVideo2.ForeColor = System.Drawing.Color.Green;
}
else
{
labelContainsVideo2.Text = "BAD";
labelContainsVideo2.ForeColor = System.Drawing.Color.Red;
}
}
此外,请记住,这样它将只计算最后一个
项
。如果要显示所有项目状态,则应具有标签数组或其他内容。如果您想知道任何项目是否包含“是”,则应遵循@ZombieSheep answer。如果列表中的最后一项不包含“是”,则无论其他项目包含什么,输出都将是“坏的”
试试这个
string message = "BAD";
var msgColor = System.Drawing.Color.Red;
foreach (ListViewItem item in listView1.Items)
{
if (item.SubItems[5].Text.Contains("Yes"))
{
message = "GREAT";
msgColor = System.Drawing.Color.Green;
break; // no need to check any more items - we have a match!
}
}
labelContainsVideo2.Text = message ;
labelContainsVideo2.ForeColor = msgColor;
如果列表中的最后一项不包含“是”,则无论其他项包含什么,输出都将为“坏” 试试这个
string message = "BAD";
var msgColor = System.Drawing.Color.Red;
foreach (ListViewItem item in listView1.Items)
{
if (item.SubItems[5].Text.Contains("Yes"))
{
message = "GREAT";
msgColor = System.Drawing.Color.Green;
break; // no need to check any more items - we have a match!
}
}
labelContainsVideo2.Text = message ;
labelContainsVideo2.ForeColor = msgColor;
试试这个:
if(listView1.Items.Cast<ListViewItem>().Any(i => i.SubItems[5].Text.ToLower().Contains("yes"))){
labelContainsVideo2.Text = "GREAT";
labelContainsVideo2.ForeColor = System.Drawing.Color.Green;
}
else
{
labelContainsVideo2.Text = "BAD";
labelContainsVideo2.ForeColor = System.Drawing.Color.Red;
}
if(listView1.Items.Cast().Any(i=>i.SubItems[5].Text.ToLower().Contains(“yes”)){
labelContainsVideo2.Text=“很棒”;
LabelContainesVideo2.ForeColor=System.Drawing.Color.Green;
}
其他的
{
labelContainsVideo2.Text=“坏”;
LabelContainesVideo2.ForeColor=System.Drawing.Color.Red;
}
试试这个:
if(listView1.Items.Cast<ListViewItem>().Any(i => i.SubItems[5].Text.ToLower().Contains("yes"))){
labelContainsVideo2.Text = "GREAT";
labelContainsVideo2.ForeColor = System.Drawing.Color.Green;
}
else
{
labelContainsVideo2.Text = "BAD";
labelContainsVideo2.ForeColor = System.Drawing.Color.Red;
}
if(listView1.Items.Cast().Any(i=>i.SubItems[5].Text.ToLower().Contains(“yes”)){
labelContainsVideo2.Text=“很棒”;
LabelContainesVideo2.ForeColor=System.Drawing.Color.Green;
}
其他的
{
labelContainsVideo2.Text=“坏”;
LabelContainesVideo2.ForeColor=System.Drawing.Color.Red;
}
您能提供一些您正在使用的数据吗?您是否意识到唯一将计数的项是最后一项?您是否已检查此操作是否在数据绑定后执行?通过更改将文本设置为:labelContainsVideo2.text=item.SubItems[5]的行,您可以轻松调试此操作;您能提供一些您正在使用的数据吗?您是否意识到唯一将计数的项是最后一项?您是否已检查此操作是否在数据绑定后执行?通过更改将文本设置为:labelContainsVideo2.text=item.SubItems[5]的行,您可以轻松调试此操作;当我将文本转换为大写时,它应该搜索“是”,而不是“是”。当我将文本转换为大写时,它应该搜索“是”,而不是“是”。