Anda benar bahwa kelas cTag Anda harus mengimplementasikan IComparable<T>
antarmuka. Kemudian Anda bisa memanggil Sort()
di daftar Anda.
Untuk mengimplementasikan IComparable<T>
antarmuka, Anda harus mengimplementasikan CompareTo(T other)
metode. Cara termudah untuk melakukannya adalah dengan memanggil metode CompareTo dari bidang yang ingin Anda bandingkan, yang dalam kasus Anda adalah tanggal.
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);
}
}
Namun, ini tidak akan diurutkan dengan baik, karena ini akan menggunakan pengurutan klasik pada string (karena Anda menyatakan tanggal sebagai string). Jadi menurut saya hal terbaik untuk dilakukan adalah dengan mendefinisikan ulang kelas dan menyatakan tanggal bukan sebagai string, tetapi sebagai DateTime. Kode tersebut akan tetap hampir sama:
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);
}
}
Hanya hal yang harus Anda lakukan saat membuat instance kelas untuk mengubah string Anda yang berisi tanggal menjadi tipe DateTime, tetapi hal itu dapat dilakukan dengan mudah misalnya dengan DateTime.Parse(String)
metode.
list.Sort((a,b) => a.date.CompareTo(b.date));