Forse volevi implementare IComparable.

In ogni caso il succo è lo stesso, sei tu che decidi il criterio, l'importante è che abbia un senso. Puoi comparare gli id, le date (convertite in DateTime), gli importi...potresti per assurdo fare la somma dei risultati del compareTo di ogni proprietà ma diventerebbe un non-sense a tutti gli effetti. Tuttavia io non lo trovo molto "esatto" ridurre a questo la comparabilità di un intero oggetto di quel tipo anche se avesse un senso, in quanto è un criterio che puo andar bene in un ambito ma non in mille altri.

Per questo si usano le classi che implementano IComparer. Sono classi a parte (e non le entità come Entrate!) che implementano il metodo compare su cui puoi metterci una logica personalizzata in base all'esigenza del momento. Istanze del genere possono poi essere passate a metodi come Sort, orderBy ecc.

Poi, se non ricordo male, un buon design del metodo vuole che compare(null, null) deve dare 0, compare(a,null) 1 e compare (null,a) -1, senza lanciare quelle eccezioni (che dovrebbero essere al limite ArgumentNullException).