不区分大小写的比较

时间:2009-12-02 12:23:06

标签: c# delegates

如何实现不区分大小写的比较?

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));

5 个答案:

答案 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())

快速实施。可能不是最好的长期解决方案。