Tiene razón en que su clase cTag debe implementar la IComparable<T>
interfaz. Entonces puedes simplemente llamar Sort()
a tu lista.
Para implementar la IComparable<T>
interfaz, debe implementar el CompareTo(T other)
método. La forma más sencilla de hacer esto es llamar al método CompareTo del campo que desea comparar, que en su caso es la fecha.
public class cTag:IComparable<cTag> {
public int id { get; set; }
public int regnumber { get; set; }
public string date { get; set; }
public int CompareTo(cTag other) {
return date.CompareTo(other.date);
}
}
Sin embargo, esto no se ordenaría bien, porque usaría la ordenación clásica en cadenas (ya que declaró la fecha como cadena). Así que creo que lo mejor que se puede hacer sería redefinir la clase y declarar la fecha no como una cadena, sino como DateTime. El código permanecería casi igual:
public class cTag:IComparable<cTag> {
public int id { get; set; }
public int regnumber { get; set; }
public DateTime date { get; set; }
public int CompareTo(cTag other) {
return date.CompareTo(other.date);
}
}
Lo único que tendría que hacer al crear la instancia de la clase para convertir su cadena que contiene la fecha al tipo DateTime, pero se puede hacer fácilmente, por ejemplo, por DateTime.Parse(String)
método.
list.Sort((a,b) => a.date.CompareTo(b.date));