本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

String.CompareTo 方法 (Object)

 

将此实例与指定的 Object 进行比较,并指示此实例在排序顺序中是位于指定的 Object 之前、之后还是与其出现在同一位置。

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

public int CompareTo(
	object value
)

参数

value
Type: System.Object

一个对象,其计算结果为 String

返回值

Type: System.Int32

一个 32 位带符号整数,该整数指示此实例在排序顺序中是位于 value 参数之前、之后还是与其出现在同一位置。

条件

小于零

此实例位于 value 之前。

此实例在排序顺序中的位置与 value 相同。

大于零

此实例位于 value 之后。

- 或 -

valuenull

Exception Condition
ArgumentException

value 不是 String

value必须是String对象。

System_CAPS_caution小心

CompareTo方法主要适用排序或按字母顺序排列操作中使用。 它不应在方法调用的主要用途是确定两个字符串是否相等。 若要确定两个字符串是否等效,请调用Equals方法。

此方法执行使用当前区域性的单词 (区分大小写和区分区域性) 比较。 有关 word、 字符串和顺序排序的详细信息,请参阅System.Globalization.CompareOptions

此方法的行为的详细信息,请参阅备注部分的String.Compare(String, String)方法。

调用函数说明:

字符集包括可忽略字符。 CompareTo方法执行区分区域性的比较时不考虑此类字符。 例如,如果在上运行下面的代码.NET Framework 4或更高版本,"动物"与"ani 邮件"(使用软连字符或 U + 00AD) 的比较该值指示两个字符串是否相等。

using System;

public class Example
{
   public static void Main()
   {
      string s1 = "ani\u00ADmal";
      object o1 = "animal";

      Console.WriteLine("Comparison of '{0}' and '{1}': {2}", 
                        s1, o1, s1.CompareTo(o1));
   }
}
// The example displays the following output:
//       Comparison of 'ani-mal' and 'animal': 0

若要识别可忽略字符的字符串比较中,调用CompareOrdinal(String, String)方法。

下面的示例使用CompareTo方法替换Object 因为它尝试比较String到实例TestClass对象,该方法将引发ArgumentException

using System;

public class TestClass
{}

public class Example 
{
   public static void Main()
   {
      var test = new TestClass();
      Object[] objectsToCompare = { test, test.ToString(), 123,
                                    123.ToString(), "some text",
                                    "Some Text" };
      string s = "some text";
      foreach (var objectToCompare in objectsToCompare) {
         try {
            int i = s.CompareTo(objectToCompare);
            Console.WriteLine("Comparing '{0}' with '{1}': {2}",
                              s, objectToCompare, i);
         }
         catch (ArgumentException) {
            Console.WriteLine("Bad argument: {0} (type {1})",
                              objectToCompare,
                              objectToCompare.GetType().Name);
         }
      }
   }
}
// The example displays the following output:
//    Bad argument: TestClass (type TestClass)
//    Comparing 'some text' with 'TestClass': -1
//    Bad argument: 123 (type Int32)
//    Comparing 'some text' with '123': 1
//    Comparing 'some text' with 'some text': 0
//    Comparing 'some text' with 'Some Text': -1

.NET Framework
自 1.1 起可用
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
返回页首
显示: