Sort the objects in ArrayList
It should be a frequent scenario to sort the order of objects in a collection, such as ArrayList. ArrayList in c# provide a method named Sort(). But we need to let ArrayList know the detailed sorting algorithm.
There are two means to implement this:
1. Make the target class inheritted from IComparable interface, and provide CompareTo() method. IComparable interface comes from System namespace.
class UITestCase: IComparable
private int _sequenceno = 0;
public int SequenceNo
_sequenceno = value;
// implement the IComparable interface, define the algorithm here
public Int32 CompareTo(object next)
UITestCase nextCase = (UITestCase)next;
} // class end.
When using ArrayList to store a group of UITestCase objects, we could simply call ArrayList.Sort() to sort all objects in it.
// get all test case entities, then make sort order
ArrayList caseList = new ArrayList();
foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories("*.tc"))
UITestCase testcase = new UITestCase(dir.FullName);
if (caseList.Count > 0)
2. Create a class inherited from IComparer interface, then implement Compare(object x, object y) method just like IComparable's CompareTo(object next) method.
3. Write a special method to sort the order of a given ArrayList like what we will do in C language, I prefer this one because I think the codes writing in above two methods are not straightforward enough.