Multilevel Sorting with IComparable and IComparer: Listing 5.
The SortByPopulationName subclass.
public class SortByPopulationName : IComparer<City>
{
public int Compare(City c1, City c2)
{
if (c1.population == c2.population &&
String.Compare(c1.name, c2.name) == 0)
return 0;
else if (c1.population > c2.population)
return 1;
else if (c1.population == c2.population &&
String.Compare(c1.name, c2.name) > 0)
return 1;
else
return -1;
}
}
About the Author
Dr. James McCaffrey works for Microsoft Research in Redmond, Wash. He has worked on several Microsoft products including Azure and Bing. James can be reached at [email protected].