I have a class that implements IComparable.
public class MyClass : IComparable<MyClass>
{
public int CompareTo(MyClass c)
{
return this.whatever.CompareTo(c.whatever);
}
etc..
}
I then can call the sort method of a generic list of my class
List<MyClass> c = new List<MyClass>();
//Add stuff, etc.
c.Sort();
and have the list sorted according to my comparer.
How do i specify further comparers to sort my collection different ways according to the other properties of MyClass in order to let users sort my collection in a number of different ways?
To setup the sort in your class:
public static Comparison<MyClass> OtherComparison = delegate(MyClass object1, MyClass object2)
{
return object1.Whatever.CompareTo(object2.Whatever);
};
Then to sort using your new comparison:
List<MyClass> myClassList = new List<MyClass>();
myClassList.Sort(MyClass.OtherComparison);
Except you clearly will not want to sort an empty list :)