2016-03-07 107 views
-6

我有项的组合框: AA, BB, CC通过组合框项搜索

然后我与行一个DataGridView下同:

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

我需要检查,如果所选值荷兰国际集团在DataGridView存在于组合框项目中。

我已经试过这样:

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

} 

但是,即使“AAA”是该组合框的项目总是返回false。

+2

你试过了什么?比赛是什么意思?这些值如何匹配? – dotctor

+0

'comboBox.Items.Contains(selectedGridValue)'?这是WPF还是Windows窗体? –

+0

请看更新的问题。谢谢。 – QKWS

回答

1

你的GridView项目有:

AAA 
BBB 
CCC 
DDD 

注意,他们是每3个字符,而您ComboBox的:

AA 
BB 
CC 

虽然为了让你有以下返回true

comboBox.Items.Contains("AAA") 

您必须有确切项目AAA在您的ComboBox。因此,它解释了为什么它返回false。要修复,您的ComboBox必须有ItemsAAA,BBBCCC而不是AA,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将返回true只要存在匹配的substring作为Contains的说法。

对于集合,假设你有ComboBox下列物品:

AAA 
BBB 
CCC 

然后,如果你试图找到:

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

你会找到它。这是因为Contains在上述情况下返回true,给出的参数(在上述情况下为AA)必须与元素的严丝合缝与集合中的元素,