string.contains 项来自组合框

string.contains item from combobox

又是一个复杂的问题,我到处找了找也只能找到'how do i find a string in a combo box'

的答案

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

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

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

传入的地址:

我的思路是

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

但是你可能会说,那是行不通的!

I would like to search my address string to see if it contains any one of the cities currently in my combo box.

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

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

如果您的 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);

如果您不喜欢 LINQ:

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

好吧,您可以通过多种方式来做到这一点。这就是我处理它的方式:

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

如果我理解您要执行的操作,这应该可行,并且城市在字符串中始终处于相同位置。