Implementing the IComparable Interface in Displaying Fractions : 4/5 10/8 5/2 29/6 34/7
This is a C# Program to implement icomparable interface.
This C# Program Implements IComparable Interface.
IComparable allows custom sorting of objects when implemented. When a class implements this interface, we must add the public method CompareTo(T).
Here is source code of the C# Program to Implement IComparable Interface. The C# program is successfully compiled and executed with Microsoft Visual Studio. The program output is also shown below.
/* * C# Program to Implement IComparable Interface */ using System; class Fraction : IComparable { int z, n; public Fraction(int z, int n) { this.z = z; this.n = n; } public static Fraction operator +(Fraction a, Fraction b) { return new Fraction(a.z * b.n + a.n * b.z, a.n * b.n); } public static Fraction operator *(Fraction a, Fraction b) { return new Fraction(a.z * b.z, a.n * b.n); } public int CompareTo(object obj) { Fraction f = (Fraction)obj; if ((float)z / n < (float)f.z / f.n) return -1; else if ((float)z / n > (float)f.z / f.n) return 1; else return 0; } public override string ToString() { return z + "/" + n; } } class Test { static void Main(string[] arg) { Fraction[] a = { new Fraction(5,2), new Fraction(29,6), new Fraction(4,5), new Fraction(10,8), new Fraction(34,7) }; Array.Sort(a); Console.WriteLine("Implementing the IComparable Interface in " + "Displaying Fractions : "); foreach (Fraction f in a) Console.WriteLine(f + " "); Console.WriteLine(); Console.ReadLine(); } }
This C# program is used to implement IComparable interface. Implement the IComparable interface for printing fractions. IComparable allows custom sorting of objects when implemented.
When a class implements this interface, add the public method CompareTo(T). CompareTo(T others)”. The generic version of this interface provides a more type-safe manner to handle the comparison between objects. Where “T” is the type of object and “other” is an object to compare with the current object.
The role of IComparable is to provide a method to compare two objects of a particular type. This is necessary if we want to provide any ordering capability for the object.
Implementing the IComparable Interface in Displaying Fractions : 4/5 10/8 5/2 29/6 34/7