另一个复杂的问题,我到处搜索,只能找到答案,如何在组合框中找到字符串'
我想知道相反的情况。我有一个充满城市(字符串)的组合框,我传递了一个地址字符串。
我想搜索我的地址字符串,看它是否包含我的组合框中当前的任何一个城市。
例如。组合框包含:伦敦,巴黎,柏林
传入的地址:
我正在思考
address.Contains(combobox.Any().ToString());
但你可能会说,这不起作用!
答案 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总是在字符串中处于同一位置。