我需要比较C#中的2个字符串,并将重音字母与非重音字母相同.例如:
string s1 = "hello";
string s2 = "héllo";
s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase);
s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
这两个字符串需要相同(就我的应用程序而言),但这两个语句都评估为false.C#中有没有办法做到这一点?
使用LINQ通过Where忽略重音和大小写的方法过滤元素的最简单方法是什么?
到目前为止,我已经能够通过调用属性上的方法来忽略Casing,我认为这不是一个好主意,因为它为每个元素调用相同的方法(对吧?).
所以这就是我到目前为止所得到的:
var result = from p in People
where p.Name.ToUpper().Contains(filter.ToUpper())
select p;
Run Code Online (Sandbox Code Playgroud)
请告诉我这是不是一个好习惯,也是忽略重音的最简单方法.