Bien, entonces tengo un escenario similar al siguiente código, tengo una clase principal que implementa IComparable y una clase secundaria.Tengo un problema con IComparable y el método de ordenación de colecciones
class Parent : IComparable<Parent>
class Child : Parent
Child a = new Child();
Child b = new Child();
a.CompareTo(b);
Ahora lo anterior funciona bien, puedo comparar dos de los objetos secundarios entre sí ningún problema
List<Child> l = new List<Child>();
l.Add(b);
l.Add(a);
l.Sort();
lo anterior falla, aunque con una excepción InvalidOperationException. ¿Puede alguien explicar por qué este tipo no funciona cuando la clase hija implementa la interfaz IComparable o, al menos, me parece que sí?
Bueno aquí es mi aplicación CompareTo para mi clase padre real
public int CompareTo(IDType other)
{
return this.Name.ToString().CompareTo(other.ToString());
}
Su muestra dice "nueva lista de()", que supongo es un error tipográfico ... ¿cuál es el tipo genérico real en la lista que está creando? –
Oh lo siento, sí, fue un error tipográfico, tuve la lista l = new List (); Creo que es bastante obvio qué lista de tipos genéricos estaba creando. –
CalvinR
¿Podemos ver el código de su implementación IComparable? –