字符串.包含组合框中的项



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

我想知道相反的情况。我有一个组合框,里面装满了城市(字符串),我收到了一个地址字符串。

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

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

传入地址:

  • 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]);

如果我理解你想做的事情,并且曼城总是处于同一位置,这应该会奏效。

最新更新