How to compare Enum values in C#? Last Updated : 23 Jul, 2019 Summarize Comments Improve Suggest changes Share 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: https://docs.microsoft.com/en-us/dotnet/api/system.enum.compareto?view=netframework-4.8 Comment More infoAdvertise with us Next Article How to compare Enum values in C#? A ankita_saini Follow Improve Article Tags : C# CSharp-method CSharp-Enum-Class Similar Reads How to compare two ValueTuple in C#? To compare two instances of ValueTuple you can use CompareTo method which is provided by ValueTuple structure. ValueTuple.CompareTo(ValueTuple) Method is used to compare the current instance of ValueTuple with another ValueTuple instance. It always returns zero if they are equal to each other. Synta 2 min read How to Compare Strings in C#? A string is a collection of characters and is used to store plain text. Unlike C or C++, a string in C# is not terminated with a null character. The maximum size of a string object depends on the internal architecture of the system. A variable declared followed by "string" is actually an object of s 13 min read Comparing two ValueTuple<T1> in C# ValueTuple is a structure introduced in C# 7.0 which represents the value type Tuple. It is already included in .NET Framework 4.7 or higher version. It allows you to store a data set that contains multiple values that may or may not be related to each other. You can also compare the instance of two 2 min read Decimal.Compare() Method in C# This method is used to compare two specified Decimal values. Syntax: public static int Compare (decimal a1, decimal a2); Parameters: a1:This parameter specifies the first value to compare. a2:This parameter specifies the second value to compare. Return Value: It returns a signed number indicating th 2 min read Comparing two ValueTuple<T1, T2> in C# ValueTuple is a structure introduced in C# 7.0 which represents the value type Tuple. It is already included in .NET Framework 4.7 or higher version. It allows you to store a data set that contains multiple values that may or may not be related to each other. You can also compare the instance of two 2 min read Like