Вы правы, что ваш класс cTag должен реализовывать интерфейс IComparable<T>
. Тогда вы можете просто позвонить Sort()
в вашем списке.
Для реализации интерфейса IComparable<T>
необходимо реализовать метод CompareTo(T other)
. Самый простой способ сделать это - вызвать метод CompareTo для поля, которое вы хотите сравнить, в вашем случае это date.
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);
}
}
Однако, это не очень хорошая сортировка, потому что будет использоваться классическая сортировка по строкам (так как вы объявили дату как строку). Поэтому я думаю, что лучше всего было бы переопределить класс и объявить дату не как строку, а как DateTime. Код останется почти таким же:
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);
}
}
Единственное, что вам нужно будет сделать при создании экземпляра класса, чтобы преобразовать вашу строку, содержащую дату, в тип DateTime, но это можно сделать легко, например DateTime.Parse(String)
методом.