I'm working in a C# Windows 8 Metro app and I'm trying to filter an ObservableCollection<T>
using LINQ where a property contains some string, and I need that it will be case insensitive.
var searchResults = from _rest in App.ViewModel.Restaurants
where _rest.Name.IndexOf(queryText,
StringComparison.CurrentCultureIgnoreCase) >= 0
select _rest;
I work around
Using string1.Contains(string2).ToUpper()
in both strings.Using string1.Contains(string2).ToLower()
in both strings.Using string1.IndexOf(string2, StringComparison.CurrentCultureIgnoreCase) >= 0
.Using string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0
.Using String.Compare(string1, string2, StringComparison.CurrentCultureIgnoreCase)
.
But no one of this methods works for me in a case insensitive way, works ok if I write the name correctly.
Has someone have the same issue in Windows 8??
Thanks in advance for any help provided.