How to compare Enum values in C#? Last Updated : 11 Jul, 2025 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: https://learn.microsoft.com/en-us/dotnet/api/system.enum.compareto?view=netframework-4.8 Comment A ankita_saini Follow 0 Improve A ankita_saini Follow 0 Improve Article Tags : C# CSharp-method CSharp-Enum-Class Explore IntroductionC# Tutorial 2 min read Introduction to .NET Framework 6 min read C# .NET Framework (Basic Architecture and Component Stack) 6 min read C# Hello World 2 min read Common Language Runtime (CLR) in C# 4 min read FundamentalsC# Identifiers 2 min read Data Types in C# 6 min read C# Variables 4 min read C# Literals 5 min read Operators in C# 7 min read C# Keywords 5 min read Control StatementsC# Decision Making (if, if-else, if-else-if ladder, nested if, switch, nested switch) 5 min read C# Switch Statement 4 min read Loops in C# 4 min read C# Jump Statements (Break, Continue, Goto, Return and Throw) 4 min read OOP ConceptsClass and Objects in C# 4 min read Constructors in C# 5 min read C# Inheritance 3 min read Encapsulation in C# 2 min read C# Abstraction 4 min read MethodsMethods in C# 4 min read Method Overloading in C# 4 min read Method Parameters in C# 4 min read Method Overriding in C# 7 min read Anonymous Method in C# 2 min read ArraysArrays in C# 6 min read Jagged Arrays in C# 4 min read Array Class in C# 5 min read How to Sort an Array in C# | Array.Sort() Method Set - 1 8 min read How to find the rank of an array in C# 2 min read ArrayListArrayList in C# 6 min read ArrayList Class in C# 4 min read C# | Array vs ArrayList 2 min read StringStrings in C# 6 min read C# Verbatim String Literal - @ 5 min read C# String Class 9 min read C# StringBuilder 4 min read C# String vs StringBuilder 3 min read TupleC# Tuple 7 min read C# Tuple Class 3 min read C# ValueTuple 7 min read C# ValueTuple Struct 4 min read IndexersC# Indexers 5 min read C# Multidimensional Indexers 5 min read C# - Overloading of Indexers 3 min read Like