我正在C#Windows 8 Metro应用程序中工作,我试图过滤使用LINQ的ObservableCollection<T>
,其中属性包含一些字符串,并且我需要它将不区分大小写。LINQ字符串包含另一个字符串不区分大小写
var searchResults = from _rest in App.ViewModel.Restaurants
where _rest.Name.IndexOf(queryText,
StringComparison.CurrentCultureIgnoreCase) >= 0
select _rest;
我在这两个字符串解决
Using string1.Contains(string2).ToUpper()
。Using string1.Contains(string2).ToLower()
这两个字符串。Using string1.IndexOf(string2, StringComparison.CurrentCultureIgnoreCase) >= 0
。Using string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0
。Using String.Compare(string1, string2, StringComparison.CurrentCultureIgnoreCase)
。
但是这种方法没有一种以不区分大小写的方式适用于我,如果我正确写入名称,那么工作正常。
有人在Windows 8中有相同的问题?
在此先感谢您提供的任何帮助。
你能举一个简短但完整的例子来说明问题吗? –
他们不是欧式餐厅的名字吗? ;-) – dash
如果您在例如.NET 4(.0)WPF应用程序中应用相同的LINQ表达式,它是否按照您希望的方式工作? –