搜索组合框项目

时间:2016-03-07 08:56:00

标签: c# winforms

我有一个包含项目的ComboBox: AA, BB, CC

然后我有一个DataGridView,其行与下面的行相同:

Remarks
-------
 AAA
 BBB
 CCC
 DDD

我需要检查ComboBox项目中是否存在DataGridView的选定值。

我试过这个:

if (combobox.Items.Contains ("AAA")) {

}

但即使组合框项目中有“AAA”,它也总是返回false。

1 个答案:

答案 0 :(得分:1)

您的gridView项目是:

ComboBox

请注意,它们各为3个字符,而AA BB CC 为:

true

为了让您有以下内容返回comboBox.Items.Contains("AAA")

AAA

ComboBox中的false项必须包含完全项。因此,它解释了为什么它会返回ComboBox。要解决此问题,您的Items必须AAA BBBCCCAA而不是BBCC,以及string

此外,请注意,如果您使用string val = "AAA"; if (val.Contains("AA")){ //will return true //will be executed } ,则:

string val = "AA";
if (val.Contains("AAA")){ //will return false
    //will not be executed
}

但如果你扭转它:

string.Contains

这是因为只要truesubstring参数匹配,Contains就会返回ComboBox

<强> BUT

对于集合,假设您AAA BBB CCC 包含以下项目:

if(comboBox.Items.Contains("AA")) //note that this has one less A

然后,如果你试图找到:

Contains

您将找到它。这是因为在上述情况下true要返回AA,给出的参数(在上面的例子中为def get_ordered_dict(start, end, intial_value): d = collections.OrderedDict() for i in range(start, end+1): d[i] = intial_value return d )必须与完全匹配该元素的子串集合。