如何返回两个字符串是否只有大小写?

时间:2013-08-09 11:21:55

标签: c# string

我正在编写一个输入为两个字符串的方法,当字符串具有完全相同的值(字符的Unicode值)时,该方法应返回三个值中的一个:+10当字符串具有完全相同的值,但Basic Latin(ASCII)字符的大小写不同,否则-1。我有:

    public static int MyCompare(string s1, string s2)
    {
        return string.Equals(s1, s2, StringComparison.OrdinalIgnoreCase)
            ? (string.Equals(s1, s2, StringComparison.Ordinal) ? 1 : 0)
            : -1;
    }

该方法将用于相对较短的字符串(通常<25个字符),但我想知道是否有更好的方法来实现这一点,而不是执行两个string.Equals调用。

1 个答案:

答案 0 :(得分:2)

不,基本上 - 没有编写自己的逐个字符比较,并且手动处理所有案例逻辑(我不推荐;现有代码经过充分测试和优化等)。

请注意,第二个Equals仅针对不区分大小写的匹配进行调用,因此对于大多数字符串(我们可以合理地假设有更多“未命中”而非“命中”)无论如何只需拨打Equals 一次。所以我个人不会太在意这里。