我正在开发一个C# Windows 8 Metro应用程序,尝试使用LINQ过滤包含某个字符串的ObservableCollection<T>
属性,并且需要忽略大小写。
var searchResults = from _rest in App.ViewModel.Restaurants
where _rest.Name.IndexOf(queryText,
StringComparison.CurrentCultureIgnoreCase) >= 0
select _rest;
我遇到了一个与大小写无关的问题,以下是几种方法:
在两个字符串中使用string1.Contains(string2).ToUpper()
。在两个字符串中使用string1.Contains(string2).ToLower()
。使用string1.IndexOf(string2, StringComparison.CurrentCultureIgnoreCase) >= 0
。使用string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0
。使用String.Compare(string1, string2, StringComparison.CurrentCultureIgnoreCase)
。
但是,这些方法在大小写不敏感时都不起作用,如果我正确地输入名称,则可以正常工作。
在Windows 8中是否有人遇到过同样的问题?
谢谢您提供的任何帮助。