Int32.CompareTo 方法

定义

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

重载

CompareTo(Int32)

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

CompareTo(Object)

将此实例与指定对象进行比较并返回一个对二者的相对值的指示。

CompareTo(Int32)

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

public:
 virtual int CompareTo(int value);
public int CompareTo (int value);
abstract member CompareTo : int -> int
override this.CompareTo : int -> int
Public Function CompareTo (value As Integer) As Integer

参数

value
Int32

要比较的整数。

返回

一个带符号数字,指示此实例和 value 的相对值。

返回值 说明
小于零 此实例小于 value
此实例等于 value
大于零 此实例大于 value

实现

示例

下面的示例演示 Int32.CompareTo(Int32) 方法。 除了显示 方法为四个不同比较返回的值外,它还将返回值转换为自定义 Comparison 枚举的成员,该枚举的值也会显示。

using System;

enum Comparison {
   LessThan=-1, Equal=0, GreaterThan=1};

public class ValueComparison
{
   public static void Main()
   {
      int mainValue = 16325;
      int zeroValue = 0;
      int negativeValue = -1934;
      int positiveValue = 903624;
      int sameValue = 16325;

      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
                        mainValue, zeroValue,
                        mainValue.CompareTo(zeroValue),
                        (Comparison) mainValue.CompareTo(zeroValue));

      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
                        mainValue, sameValue,
                        mainValue.CompareTo(sameValue),
                        (Comparison) mainValue.CompareTo(sameValue));

      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
                        mainValue, negativeValue,
                        mainValue.CompareTo(negativeValue),
                        (Comparison) mainValue.CompareTo(negativeValue));

      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
                        mainValue, positiveValue,
                        mainValue.CompareTo(positiveValue),
                        (Comparison) mainValue.CompareTo(positiveValue));
   }
}
// The example displays the following output:
//       Comparing 16325 and 0: 1 (GreaterThan).
//       Comparing 16325 and 16325: 0 (Equal).
//       Comparing 16325 and -1934: 1 (GreaterThan).
//       Comparing 16325 and 903624: -1 (LessThan).
open System

type Comparison =
    | LessThan = -1 
    | Equal = 0
    | GreaterThan = 1

let mainValue = 16325
let zeroValue = 0
let negativeValue = -1934
let positiveValue = 903624
let sameValue = 16325

printfn $"Comparing {mainValue} and {zeroValue}: {mainValue.CompareTo zeroValue} ({enum<Comparison>(mainValue.CompareTo zeroValue)})."

printfn $"Comparing {mainValue} and {sameValue}: {mainValue.CompareTo sameValue} ({enum<Comparison>(mainValue.CompareTo sameValue)})."

printfn $"Comparing {mainValue} and {negativeValue}: {mainValue.CompareTo negativeValue} ({enum<Comparison>(mainValue.CompareTo negativeValue)})." 

printfn $"Comparing {mainValue} and {positiveValue}: {mainValue.CompareTo positiveValue} ({enum<Comparison>(mainValue.CompareTo positiveValue)})."

// The example displays the following output:
//       Comparing 16325 and 0: 1 (GreaterThan).
//       Comparing 16325 and 16325: 0 (Equal).
//       Comparing 16325 and -1934: 1 (GreaterThan).
//       Comparing 16325 and 903624: -1 (LessThan).
Public Enum Comparison As Integer
   LessThan = -1
   Equal = 0
   GreaterThan = 1
End Enum

Module ValueComparison
   Public Sub Main()
      Dim mainValue As Integer = 16325
      Dim zeroValue As Integer = 0
      Dim negativeValue As Integer = -1934
      Dim positiveValue As Integer = 903624
      Dim sameValue As Integer = 16325
      
      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _ 
                        mainValue, zeroValue, _
                        mainValue.CompareTo(zeroValue), _
                        CType(mainValue.CompareTo(zeroValue), Comparison))
                        
      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _ 
                        mainValue, sameValue, _
                        mainValue.CompareTo(sameValue), _
                        CType(mainValue.CompareTo(sameValue), Comparison))
                        
      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _ 
                        mainValue, negativeValue, _
                        mainValue.CompareTo(negativeValue), _
                        CType(mainValue.CompareTo(negativeValue), Comparison))
                        
      Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _ 
                        mainValue, positiveValue, _
                        mainValue.CompareTo(positiveValue), _
                        CType(mainValue.CompareTo(positiveValue), Comparison))
   End Sub
End Module
' The example displays the following output:
'       Comparing 16325 and 0: 1 (GreaterThan).
'       Comparing 16325 and 16325: 0 (Equal).
'       Comparing 16325 and -1934: 1 (GreaterThan).
'       Comparing 16325 and 903624: -1 (LessThan).

注解

此方法实现 System.IComparable<T> 接口,并且性能略好于 方法, Int32.CompareTo 因为它不必将 参数转换为 value 对象。

根据编程语言,可以编写 CompareTo 参数类型具有较少位 (比实例类型更窄) 的方法。 这是可能的,因为某些编程语言执行隐式扩大转换,该转换将 参数表示为具有与实例一样多位的类型。

例如,假设实例类型为 Int32 ,参数类型为 Byte。 Microsoft C# 编译器生成指令,将参数的值表示为 ,Int32然后生成一个Int32.CompareTo方法,用于比较实例的值Int32Int32参数表示形式。

请参阅编程语言的文档,确定其编译器是否对数值类型执行隐式扩大转换。

另请参阅

适用于

CompareTo(Object)

将此实例与指定对象进行比较并返回一个对二者的相对值的指示。

public:
 virtual int CompareTo(System::Object ^ value);
public int CompareTo (object? value);
public int CompareTo (object value);
abstract member CompareTo : obj -> int
override this.CompareTo : obj -> int
Public Function CompareTo (value As Object) As Integer

参数

value
Object

要比较的对象,或为 null

返回

一个带符号数字,指示此实例和 value 的相对值。

返回值 说明
小于零 此实例小于 value
此实例等于 value
大于零 此实例大于 value,或 valuenull

实现

例外

value 不是 Int32

注解

的任何 实例 Int32,无论其值如何,都被视为大于 null

value 必须是 null 或 的 Int32实例;否则会引发异常。

另请参阅

适用于