Export (0) Print
Expand All

BigInteger.CompareTo Method (BigInteger)

Compares this instance to a second BigInteger and returns an integer that indicates whether the value of this instance is less than, equal to, or greater than the value of the specified object.

Namespace:  System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public int CompareTo(
	BigInteger other
)

Parameters

other
Type: System.Numerics.BigInteger

The object to compare.

Return Value

Type: System.Int32
A signed integer value that indicates the relationship of this instance to other, as shown in the following table.

Return value

Description

Less than zero

The current instance is less than other.

Zero

The current instance equals other.

Greater than zero

The current instance is greater than other.

Implements

IComparable<T>.CompareTo(T)

This overload of the CompareTo method implements the IComparable<T>.CompareTo method. It is used by generic collection objects to order the items in the collection.

The following example illustrates the use of the CompareTo(BigInteger) method to order a list of StarInfo objects. Each StarInfo object provides information about a star's name and its distance from the Earth in miles. StarInfo implements the IComparable<T> interface, which enables StarInfo objects to be sorted by generic collection classes. Its IComparable<T>.CompareTo implementation just wraps a call to CompareTo(BigInteger).

using System;
using System.Collections.Generic;
using System.Numerics;

public struct StarInfo : IComparable<StarInfo>
{
   // Define constructors. 
   public StarInfo(string name, double lightYears)
   {
      this.Name = name;

      // Calculate distance in miles from light years. 
      this.Distance = (BigInteger) Math.Round(lightYears * 5.88e12);
   }

   public StarInfo(string name, BigInteger distance)
   {
      this.Name = name;
      this.Distance = distance;
   }

   // Define public fields. 
   public string Name;
   public BigInteger Distance;

   // Display name of star and its distance in parentheses. 
   public override string ToString()
   {
      return String.Format("{0,-10} ({1:N0})", this.Name, this.Distance);
   }

   // Compare StarInfo objects by their distance from Earth. 
   public int CompareTo(StarInfo other)
   {
      return this.Distance.CompareTo(other.Distance);
   }
}

The following code then instantiates four StarInfo objects and stores them in a generic List<T> object. After the List<T>.Sort method is called, StarInfo objects are displayed in order of their distance from the Earth.

public class Example
{
   public static void Main()
   {
      StarInfo star;
      List<StarInfo> stars = new List<StarInfo>();

      star = new StarInfo("Sirius", 8.6d);
      stars.Add(star);
      star = new StarInfo("Rigel", 1400d);
      stars.Add(star);
      star = new StarInfo("Castor", 49d);
      stars.Add(star);
      star = new StarInfo("Antares", 520d);
      stars.Add(star);

      stars.Sort();

      foreach (StarInfo sortedStar in stars)
         Console.WriteLine(sortedStar);
   }
}
// The example displays the following output: 
//       Sirius     (50,568,000,000,000) 
//       Castor     (288,120,000,000,000) 
//       Antares    (3,057,600,000,000,000) 
//       Rigel      (8,232,000,000,000,000)

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1

Windows Phone 8.1, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft