Open In App

How to compare Enum values in C#?

Last Updated : 23 Jul, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
Enum.CompareTo(Object) Method is used to compare the current instance to a specified object and returns an indication of their relative values. Syntax:
public int CompareTo (object target);
Here, the target is an object to compare or it may be null. Returns: This method returns a signed number which shows the relative values of the current instance and target as follows:
  • Less than zero: If the value of the current instance is less than the value of target.
  • Zero: If the value of the current instance is equal to the value of the target.
  • Greater than zero: If the value of the current instance is greater than the value of the target or the target is null.
Exceptions:
  • ArgumentException: If the target and current instance are not the same types.
  • InvalidOperationException: If the instance is not type SByte, Int16, Int32, Int64, Byte, UInt16, UInt32, or UInt64.
  • NullReferenceException: If the current instance is null.
Below programs illustrate the use of the above-discussed method: Example 1: csharp
// C# program to demonstrate the 
// Enum.CompareTo(Object) Method
using System;

public class GFG 
{ 
    
    enum Color 
    { 
        RED, GREEN, BLUE
    };

    // Driver method 
    public static void Main(String[] args) 
    { 
        Color c1 = Color.RED; 
        Color c2 = Color.GREEN; 
        Color c3 = Color.RED; 
        Color c4 = Color.BLUE; 
        
        Console.Write("Comparing {0} with {1} : ", c1, c2); 
        
        // CompareTo method 
        Console.WriteLine(c1.CompareTo(c2)); 
        
        Console.Write("Comparing {0} with {1} : ", c1, c3); 
        
        // CompareTo method 
        Console.WriteLine(c1.CompareTo(c3)); 
        
        Console.Write("Comparing {0} with {1} : ", c4, c2); 
        
        // CompareTo method 
        Console.WriteLine(c4.CompareTo(c2)); 
        
    } 
} 
Output:
Comparing RED with GREEN : -1
Comparing RED with RED : 0
Comparing BLUE with GREEN : 1
Example 2: csharp
// C# program to demonstrate the 
// Enum.CompareTo(Object) Method
using System;

public class GFG 
{ 
    
    enum Color{Red, Blue};
    
    enum Seasons {Winter, Summer};

    // Driver method 
    public static void Main(String[] args) 
    { 
        Color c1 = Color.Red; 
        Color c2 = Color.Blue; 
        
        Seasons s1 = Seasons.Winter;
        Seasons s2 = Seasons.Summer;
        
        Console.Write("Comparing {0} with {1} : ", c1, c2); 
        
        // CompareTo method 
        Console.WriteLine(c1.CompareTo(c2)); 
        
        Console.Write("Comparing {0} with {1} : ", c1, s1); 
        
        // using CompareTo method
        // it will give exception
        // as target and the current
        // instance are not the same
        // types
        Console.WriteLine(c1.CompareTo(s1)); 
    
        
    } 
} 
Runtime Error:
Unhandled Exception: System.ArgumentException: Object must be the same type as the enum. The type passed in was 'GFG+Seasons'; the enum type was 'GFG+Color'. at System.Enum.CompareTo (System.Object target) <0x7ff9d1544610 + 0x000da> in <0f8aeac9d63d4b8aa575761bb4e65b79>:0
Reference:

Next Article

Similar Reads