string.contains来自combobox的项目

时间:2015-02-27 17:06:51

标签: c# winforms search combobox

另一个复杂的问题,我到处搜索,只能找到答案,如何在组合框中找到字符串'

我想知道相反的情况。我有一个充满城市(字符串)的组合框,我传递了一个地址字符串。

我想搜索我的地址字符串,看它是否包含我的组合框中当前的任何一个城市。

例如。组合框包含:伦敦,巴黎,柏林

传入的地址:

  • 123,street,town,London,Postcode(True)
  • 123,街道,城镇,罗马, 邮政编码(错误)

我正在思考

address.Contains(combobox.Any().ToString());

但你可能会说,这不起作用!

4 个答案:

答案 0 :(得分:5)

如果您的ComboBox包含所有字符串项,那么您可以使用Enumerable.OfType<string>然后应用LINQ运算符Any,如:

bool ifExist = combobox.Items.OfType<string>()
                         .Any(cbItem => address.Contains(cbItem);

对于不区分大小写的比较,请执行以下操作:

bool ifExist = combobox.Items.OfType<string>()
             .Any(cbItem => address.IndexOf(cbItem, 
                                            StringComparison.InvariantCultureIgnoreCase) 
                                            > -1);

答案 1 :(得分:2)

  

我想搜索我的地址字符串,看它是否包含我的组合框中当前的任何一个城市。

bool addressContainsCity = combobox.Items.OfType<string>.Any(item => address.Contains(item));

OR

bool addressContainsCity = combobox.Items.Cast<string>.Any(item => address.Contains(item));

答案 2 :(得分:2)

如果你不喜欢LINQ:

对所有组合框项目进行for循环,并在组合框项目的所有字符串值上调用address.Contains()

答案 3 :(得分:0)

你可以通过几种方式做到这一点。这是我接近它的方式:

string[] arg = address.Split(',');
combobox.Items.Contains(arg[3]);

如果我理解你要做什么,这应该有效,而且City总是在字符串中处于同一位置。