如果combobox.text与其列表项匹配,如何获得true

时间:2017-03-22 04:34:01

标签: c# combobox matching

如果combobox1.text与其列表项匹配,然后进一步运行,我希望得到。但如果没有给用户的警告信息..到目前为止我已经尝试了

      bool itemExists = false;
    foreach (object obj in comboBox1.Items)
    {
        itemExists = obj.Equals(comboBox1.Text);
        if (itemExists)
        {
            itemExists = true;
        }
        break;

    }

    if (itemExists)
    {
        MessageBox.Show("good00");
    }
    else
    {
        MessageBox.Show("sorry no value");
    }
}

以及

    bool test ;
    test = comboBox1.Items.OfType<object>().Any(cbi => cbi.Equals(comboBox1.Text));

    if (test)
    {
        MessageBox.Show("values matched");
    }

    else
    {
        MessageBox.Show("not matched");
    } 

但我没有得到我想要的东西.. 它应该工作,它检查组合框.text与其列表,如果有任何匹配,然后返回true和真值使用进一步的功能。如果它们不匹配则返回false,并且该false用于发送错误消息..

任何建议..

感谢..

1 个答案:

答案 0 :(得分:1)

这句话什么都不做:

if (itemExists)
{
    itemExists = true;
}

无条件之后的break。将其移至if条件将解决问题:

if (itemExists)
{
    break;
}

对于string类型的对象,您的第二种方法应该不加修改。要更改它以使用所有类型的对象,请使用

test = comboBox1
    .Items.OfType<object>()
    .Any(cbi => cbi.ToString() == comboBox1.Text);

仅在没有匹配时显示消息

if (!itemExists)
{
    MessageBox.Show("sorry no value");
}