Во-первых, обратите внимание, что если вам не нужны дубликаты, SortedList<T>
может быть полезным.
List<Bar>
захочет сравнить Bar
экземпляров, поэтому ваше сравнение должно работать на Bar
(проще всего реализовать с помощью IComparable<Bar>
:
protected class Bar : IComparable, IComparable<Bar>
{
private KeyValuePair<T, string> _keyval;
public Bar(KeyValuePair<T, string> kv)
{
_keyval = kv;
}
public int CompareTo(Bar other)
{
return _keyval.Key.CompareTo(other._keyval.Key);
}
int IComparable.CompareTo(object obj)
{
return CompareTo(obj as Bar);
}
}