c#CompareTo()方法

标签 c# string methods

我试图理解 C# 中的 CompareTo(),下面的示例让我比以往任何时候都更加困惑。有人能帮我理解为什么第三个变体的结果是 1 吗?句子“Hello wordd”中的第二个词与 str1“Hello world”不同,所以为什么我得到 1?我不应该得到 -1 吗?

static void Main(string[] args)
    {
        string str1 = "Hello world";
        Console.WriteLine(str1.CompareTo("Hello World"));
        Console.WriteLine(str1.CompareTo("Hello world"));
        Console.WriteLine(str1.CompareTo("Hello wordd"));

    }

结果:-1、0、1

最佳答案

如果字符串匹配,则 CompareTo() 给出 0。如果它们不匹配,它给出一个正数或负数,具体取决于哪个字符串按字母顺序排在第一位。

在您的示例中,结果 1 和 -1 均表示字符串不匹配,而 0 表示字符串匹配。

看起来您正在使用它来确定相等性而不是排序。如果是这种情况,那么您应该改用 Equals()

关于c#CompareTo()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67957472/

相关文章:

c++ - 在 C++ 中读取具有混合值的行

java - 计算 10 以下的数字并打印每一个

C#如何判断是否为HTTPS

c# - 如何从表中查询最后 'n' 条记录?

c# - Winforms 数据绑定(bind) : Period-delimited navigation path as DataMember causes exception. 为什么?

java - 使用数组字符串元素动态调用方法?

javascript - MDN "Object.is"替代提案

c# - 使用 log4net Asp.net Core 2.2 将日志文件写入 AppData 不起作用

string - 如何通过可选复选框将字符串参数添加到Jenkins

javascript - 理解输入的智能正则表达式