c#CompareTo()方法

时间:2021-06-13 10:58:57

标签: 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

2 个答案:

答案 0 :(得分:4)

如果字符串匹配,CompareTo() 给出 0。如果它们不匹配,它给出一个正数或负数,这取决于哪个字符串按字母顺序排在最前面。

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

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

答案 1 :(得分:1)

String.CompareTo 方法将此实例与指定的 objectString 进行比较,并返回一个 integer,指示此实例是否在先。

  • 如果返回值小于零:此实例先于值。

  • 如果返回值是:此实例在排序顺序中与值具有相同的位置

  • 如果返回值大于零:此实例遵循值。 -要么- 值为空。