.NET Framework Class Library
Int32CompareTo Method (Int32)

Compares this instance to a specified 32-bit signed integer and returns an indication of their relative values.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)
Syntax
Public Function CompareTo ( _
	value As [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_0_0_0%] _
) As [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_0_0_1%]
public [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_1_0_0%] CompareTo(
	[%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_1_0_1%] value
)
public:
virtual [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_2_0_0%] CompareTo(
	[%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_2_0_1%] value
) sealed
abstract CompareTo : 
        value:[%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_3_0_0%] -> [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_3_0_1%]  
override CompareTo : 
        value:[%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_3_0_2%] -> [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_3_0_3%]
public final function CompareTo(
	value : [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_4_0_0%]
) : [%$TOPIC/y2ky8xsk_en-us_VS_110_1_0_4_0_1%]

Parameters

value
Type: SystemInt32

An integer to compare.

Return Value

Type: SystemInt32
A signed number indicating the relative values of this instance and value.

Return Value

Description

Less than zero

This instance is less than value.

Zero

This instance is equal to value.

Greater than zero

This instance is greater than value.

Implements

IComparableTCompareTo(T)
Remarks

This method implements the SystemIComparableT interface and performs slightly better than the Int32CompareTo method because it does not have to convert the value parameter to an object.

Depending on your programming language, it might be possible to code a CompareTo method where the parameter type has fewer bits (is narrower) than the instance type. This is possible because some programming languages perform an implicit widening conversion that represents the parameter as a type with as many bits as the instance.

For example, suppose the instance type is Int32 and the parameter type is Byte. The Microsoft C# compiler generates instructions to represent the value of the parameter as an Int32, then generates a Int32CompareTo method that compares the values of the Int32 instance and the Int32 parameter representation.

Consult your programming language's documentation to determine whether its compiler performs implicit widening conversions on numeric types.

Examples

The following example demonstrates the Int32CompareTo(Int32) method. In addition to displaying the value returned by the method for four different comparisons, it converts the return value to a member of the custom Comparison enumeration, whose value it also displays.

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).
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).
Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8