Era nevoie sa implementez un mecanism de ordonare. Deoarece existau mai multe tipuri de ordonare pe acelasi obiect, am ales sa folosesc IComparer . IComparer este un mecanism de comparare extern. Implementarea functiei care face compararea nu este in interiorul obiectului, asa cum este in cazul IComparable . Se foloseste de obicei cand modul in care se face comparatie nu este naturala. Cand se implementeaza interfata IComparer , este nevoie sa implementam metoda int Compare(T obj1,T obj2), care returneaza o valorea pozitiva daca obj1 > obj2; negativa daca obj1 <> zero daca obj1 = obj2; Pana aici nu apare nici o problema. Dar daca avem nevoie sa putem face si o ordonare inversa( reverse), apar probleme. Nu neaparat la modul de implementare, putem foarte usor sa ne folosim de operatorul de negare !, ci la modul in care facem implementarea. Am cautat un mecanism de ordonare in sens invers, care sa fie cat mai generic. Solutia pe care o propun este urmatoarea: public class Compar