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)
else if (c1.population > c2.population)
else if (c1.population == c2.population &&
String.Compare(c1.name, c2.name) > 0)
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@example.com.