¿Cómo comparar los valores de Enum en C#?

El método Enum.CompareTo(Object) se usa para comparar la instancia actual con un objeto específico y devuelve una indicación de sus valores relativos.

Sintaxis:

public int CompareTo (object target);

Aquí, el objetivo es un objeto para comparar o puede ser nulo.

Devoluciones: este método devuelve un número con signo que muestra los valores relativos de la instancia actual y el destino de la siguiente manera:

  • Menos de cero: si el valor de la instancia actual es menor que el valor de destino.
  • Cero: si el valor de la instancia actual es igual al valor del objetivo.
  • Mayor que cero: si el valor de la instancia actual es mayor que el valor del objetivo o el objetivo es nulo .

Excepciones:

  • ArgumentException : si el destino y la instancia actual no son del mismo tipo.
  • InvalidOperationException : si la instancia no es tipo SByte, Int16, Int32, Int64, Byte, UInt16, UInt32 o UInt64 .
  • NullReferenceException : si la instancia actual es nula.

Los siguientes programas ilustran el uso del método mencionado anteriormente:

Ejemplo 1:

// 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)); 
          
    } 
} 
Producción:

Comparing RED with GREEN : -1
Comparing RED with RED : 0
Comparing BLUE with GREEN : 1

Ejemplo 2:

// 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)); 
      
          
    } 
} 

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentException: el objeto debe ser del mismo tipo que la enumeración. El tipo pasado fue ‘GFG+Seasons’; el tipo de enumeración era ‘GFG+Color’.
en System.Enum.CompareTo (destino System.Object) <0x7ff9d1544610 + 0x000da> en <0f8aeac9d63d4b8aa575761bb4e65b79>:0

Referencia:

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *