Ви вірні, що ваш клас cTag повинен реалізувати IComparable<T>інтерфейс. Тоді ви можете просто зателефонувати Sort()у свій список.
Для реалізації IComparable<T>інтерфейсу необхідно реалізувати CompareTo(T other)метод. Найпростіший спосіб зробити це - викликати метод CompareTo поля, яке ви хочете порівняти, який у вашому випадку є датою.
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)методом.
list.Sort((a,b) => a.date.CompareTo(b.date));