The current instance can be compared to a given object using the Enum.CompareTo(Object) method, which provides a relative value indication.
Syntax:
It has the following syntax:
Example
public int CompareTo(object target);
- public: It indicates the method's level of access. It indicates that the method may be accessed from outside the class.
- int: It denotes that an integer value is returned by the method.
- CompareTo: The name of the method.
- (object target): It indicates the method's parameter. It takes an object (target) as input to compare an object with the current object.
- Negative integer: The current object is less than the target object.
- Zero: The current object is equal to the target object.
- Positive integer: The current object is greater than the target object.
- ArgumentException: It will occur when the type of the target and the current instance differ.
- InvalidOperationException: If the instance is not of type SByte, Int16, Int32, Int64, Byte, UInt16, UInt32, or UInt64, an invalid operation exception will occur.
- NullReferenceException: If the instance is null, NullReferenceException is raised.
Return Value
Exceptions
Example-1:
Let us take an example to demonstrate how to compare enum values in C#.
Example
using System;
public class Demo
{
enum Days
{
Monday, Wednesday, Friday
};
public static void Main(String[] args)
{
Days day_1 = Days.Monday;
Days day_2 = Days.Wednesday;
Days day_3 = Days.Monday;
Days day_4 = Days.Friday;
Console.Write("Comparing {0} with {1}: ", day_1, day_2);
Console.WriteLine(day_1.CompareTo(day_2));
Console.Write("Comparing {0} with {1}: ", day_1, day_3);
Console.WriteLine(day_1.CompareTo(day_3));
Console.Write("Comparing {0} with {1}: ", day_4, day_2);
Console.WriteLine(day_4.CompareTo(day_2));
}
}
Output:
Output
Comparing Monday with Wednesday: -1
Comparing Monday with Monday: 0
Comparing Friday with Wednesday: 1
Explanation:
- In this example, the Days enum's enum values may be compared using the CompareTo method, which is shown in this C# code.
Inside the main method:
- Specific enum values corresponding to Monday, Wednesday, and Friday are defined and initialized for the enum values day1, day2, day3, and day4.
- Day 1, Day 2, and Day 4 are compared with other enum values (day 2, Day 3, and Day 2) using the CompareTo method.
- The relative order of the enum values is displayed in the comparison results, which are printed to the console using WriteLine .
- For example, the enum definition puts Monday (day 1) before Wednesday (day 2). Therefore, the initial comparison (day 1 vs. day 2) has a negative number (-1).
- As day1 and day3 represent Monday, the second comparison (day1 vs. day3) returns a zero (0) result.
- As Friday (day 4) appears after Wednesday (day 2) in the enum specification, the third comparison (day4 vs. day2) returns a positive result (1).
Example-2:
Let us take another example to demonstrate how to compare enum values in C#.
Example
using System;
//Defining an enum
public enum DayofWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
class Demo
{
static void Main(string[] args)
{
// Example 1: Using Equality Comparison
DayofWeek today = DayofWeek.Friday;
DayofWeek tomorrow = DayofWeek.Wednesday;
if (today == tomorrow)
{
Console.WriteLine("Today and Tomorrow both are the same day.");
}
else
{
Console.WriteLine("Today and Tomorrow are both different days.");
}
// Example 2: Using Comparison Methods
DayofWeek day_1 = DayofWeek.Wednesday;
DayofWeek day_2 = DayofWeek.Saturday;
if (Enum.Equals(day_1, day_2))
{
Console.WriteLine("Day1 and Day2 both are equal.");
}
else
{
Console.WriteLine("Day1 and Day2 are both not equal.");
}
// Example 3: Using Switch Statement
DayofWeek chosenDay = DayofWeek.Friday;
switch (chosenDay)
{
case DayofWeek.Saturday:
case DayofWeek.Sunday:
Console.WriteLine("It's a wonderful weekend!");
break;
default:
Console.WriteLine("It's a boring weekday.");
break;
}
}
}
Output:
Output
Today and Tomorrow are both different days.
Day 1 and Day 2 are both not equal.
It's a boring weekday.
Explanation:
This C# code demonstrates many methods for comparing enum values:
- Equality Comparison: The '==' operator compares two enum values (Today and Tomorrow). It prints the result based on whether the results are the same or different.
- Comparison Methods: The Equals method compares two enum values (day1 and day2). It determines whether or not they are equal and prints the result accordingly.
- Switch Statement: A switch statement is used to determine the value of the chosenDay enum variable. It prints "It's a wonderful weekend!" if Saturday or Sunday is selected. If not, "It's a boring weekday" is printed.
This code acts as an overall example of how to compare enum values in C# and shows how to handle enum values depending on different situations by using equality comparison, comparison methods, and switch statements.