DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

IComparer

0

 



IComparer

La función de IComparer es proporcionar mecanismos de comparación adicionales. Por ejemplo, puede desee proporcionar la ordenación de la clase en varios campos o propiedades, ascendente y descendente en el mismo campo, o en ambos.

El uso de
 IComparer es un proceso de dos pasos. En primer lugar, declare una clase que implementa la interfaz IComparery, a continuación, implemente el método Compare :

private class sortYearAscendingHelper : IComparer{
   int IComparer.Compare(object a, object b)
   {
      car c1=(car)a;
      car c2=(car)b;
      if (c1.year > c2.year)
         return 1;
      if (c1.year < c2.year)
         return -1;
      else
         return 0;
   }
}

Observe que el método IComparer.Compare requiere una comparación terciaria. 1, 0, -1 o se devuelve en función de si un valor es mayor que, igual a, o menos que el otro. El criterio de ordenación (ascendente o descendente) puede modificarse cambiando los operadores lógicos en este método.

El segundo paso es declarar un método que devuelve una instancia del objeto
 IComparer :

public static IComparer sortYearAscending(){      
   return (IComparer) new sortYearAscendingHelper();
}

En este ejemplo, el objeto se utiliza como segundo argumento cuando se llama al método Array.Sort sobrecargado que acepta IComparer. El uso de IComparer no se limita a arrays. Se acepta como argumento en un número de colección diferentes y las clases de control.

DEMOSTRACIÓN

En Visual Studio vamos a dar click en menú File à New à Project


Seleccionamos la opción ‘Console Application’ y colocamos como nombre ‘DemoApp IComparer’ y damo click en el botón OK


Nótese que al igual que los ejemplos anteriores,se agrega nuestro proyecto al navegador de soluciones

En el archivo ‘Program.cs’ del proyecto que acabamos de crear, le damos doble click en él, y procedemos a escribir la clase Empleado (Arriba de la clase Program) y dentro de ella una clase anidada que va a implementar una interface IComparer.

Debajo del método Main(), Procedemos a crear una función de nombre IComparerTestingMethod() que contendrá la siguientes líneas de código:


En el método Main() hacemos el llamado a esa función:


Al ejecutar nuestra Demo


La salida del programa sería la siguiente





Tal vez te interesen estas entradas

No hay comentarios