Devi utilizzare l'interfaccia IComparer.
Per utilizzarla però devi anche aggiungere il metodo "CompareTo" alla tua classe:
codice:
public class Soluzione() : IComparable
{
...
...
public int CompareTo(Soluzione s2)
{
return this.valore.CompareTo(s2.valore);
}
}
Il codice per effettuare la comparazione poi è questo:
codice:
class CompareSoluzioneByValue<Soluzione> : IComparer<Soluzione>
{
public int Comapre(Soluzione x, Soluzione y)
{
return x.CompareTo(y);
}
}
e la chiamate è questa:
codice:
IComparer<Soluzione> myComparer = new CompareSoluzioneByValue<Soluzione>();
myList.Sort(myComparer);
UPDATE:
puoi usare anche una lambda:
codice:
myList.Sort((sol1, sol2) => {return sol1.CompareTo(sol2);});