如何实现不区分大小写的比较?
List<Person> persons = new List<Person>();
persons.Add(new Person("P005", "Janson"));
persons.Add(new Person("P002", "Arnold"));
persons.Add(new Person("P007", "Kazhal"));
persons.Sort((p1, p2) => p1.Name.CompareTo(p2.Name));
答案 0 :(得分:20)
persons.Sort((p1, p2) => string.Compare(p1.Name, p2.Name, true));
答案 1 :(得分:6)
你的意思是弦乐吗?在这种情况下,你可以the overload of the Compare-Funciton接受第三个参数,一个确定大小写敏感性的布尔值:
String.Compare(
string1, // String 1
string2, // String 2
true // IgnoreCase
);
或者,如果你愿意,但我不明白为什么,你可以走得很脏......
string1.ToLower() == string2.ToLower()
另一方面,如果你非常严重关于比较这些字符串,你可以使用它:
string1.ToUpper() == string2.ToUpper()
答案 2 :(得分:2)
"abc".Equals("ABC", StringComparison.OrdinalIgnoreCase)
答案 3 :(得分:1)
使用new CaseInsensitiveComparer().CompareTo(str1, str2)
答案 4 :(得分:1)
你可以打电话
p1.Name.ToLower().CompareTo(p2.Name.ToLower())
快速实施。可能不是最好的长期解决方案。