SortedList è ottimizzato in modo che le inerenze si verificano in modo ordinato, in modo tale che l'enumerazione si verifichi in un ordine ordinato al minimo costo. Qualsiasi altra cosa richiede un ri-ordinamento. Così:
SortedList<string,bool> l=new SortedList<string, bool>();
l.Add("a",true);
l.Add("a",false);
l.Add("b",true);
l.Add("b",false);
var orderByVal=l.OrderBy(kvp => kvp.Value);
ma questa enumerazione sarà notevolmente più lento per calcolare ed essere attuate up-front, che richiede capacità di archiviazione di farlo.
A seconda della situazione, potrebbe essere più economico mantenere 2 istanze SortedList con la chiave/il valore invertito.
Non è possibile aggiungere lo stesso elemento alla lista due volte. Genera un'eccezione –
@BradPatton Sì, hai ragione ... – spender