另一个复杂的问题,我到处搜索,只找到了"如何在组合框中找到字符串"的答案
我想知道相反的情况。我有一个组合框,里面装满了城市(字符串),我收到了一个地址字符串。
我想搜索我的地址字符串,看看它是否包含当前组合框中的任何一个城市。
例如。组合框包含:伦敦、巴黎、柏林
传入地址:
- 123,street,town,伦敦,邮编(True)
- 123,街道,城镇,罗马,邮编(错误)
我是按照的思路思考的
address.Contains(combobox.Any().ToString());
但正如你可能知道的那样,这行不通!
如果ComboBox
包含所有字符串项,则可以使用Enumerable.OfType<string>
,然后应用LINQ运算符Any
,如:
bool ifExist = combobox.Items.OfType<string>()
.Any(cbItem => address.Contains(cbItem);
对于不区分大小写的比较,do:
bool ifExist = combobox.Items.OfType<string>()
.Any(cbItem => address.IndexOf(cbItem,
StringComparison.InvariantCultureIgnoreCase)
> -1);
如果您不喜欢LINQ:
对所有组合框项进行for循环,并对组合框项的所有字符串值调用address.Contains()
。
我想搜索我的地址字符串,看看它是否包含当前组合框中的任何一个城市。
bool addressContainsCity = combobox.Items.OfType<string>.Any(item => address.Contains(item));
或
bool addressContainsCity = combobox.Items.Cast<string>.Any(item => address.Contains(item));
有几种方法可以做到这一点。这是我处理它的方式:
string[] arg = address.Split(',');
combobox.Items.Contains(arg[3]);
如果我理解你想做的事情,并且曼城总是处于同一位置,这应该会奏效。