我需要获取所有结果,其中文本包含忽略所有重音的特定单词。
现在我有以下内容:
filtered = result.Where(p => p.@string.ToString().ToUpper().Contains(word));
或简化版:
filtered = result.ToUpper().Contains(word));
如何制作"包含"语句忽略重音?
提前致谢
答案 0 :(得分:9)
从here借用类似的解决方案:
string[] result = {"hello there", "héllo there","goodbye"};
string word = "héllo";
var compareInfo = CultureInfo.InvariantCulture.CompareInfo;
var filtered = result.Where(
p => compareInfo.IndexOf(p, word, CompareOptions.IgnoreNonSpace) > -1);
答案 1 :(得分:0)
您想使用StringComparison.InvariantCultureIgnoreCase
枚举。
来源https://msdn.microsoft.com/en-us/library/system.stringcomparison(v=vs.110).aspx
filtered = result.Contains(word, StringComparison.InvariantCultureIgnoreCase);
然而,这只适用于LinqToObject。如果您使用的是LinqToSQL或LinqToEntityFramework或LinqToNHibernate,则无法使用。