下面,列表l
包含Product
列表Name
和Price
屬性。 該列表可以按照以下類別ProductNameComparer
按字母順序排列,它們實施IComparar。CompareTo如何對列表進行排序?
List<Product> l = p.GetList();
l.Sort(new ProductNameComparer());
MessageBox.Show(l[0].Name);
public class ProductNameComparer : IComparer<Product>
{
public int Compare(Product x, Product y)
{
return x.Name.CompareTo(y.Name);
}
}
我不明白如何排序列表。根據MSDNCompareTo
返回一個的Int32類型值小於零,零,或大於零。如果我有:
string c = "Apple";
string d = "Orange";
return c.CompareTo(d)
函數將返回 「-1」。
但是,如果我取代的l.Sort(-1)
代替l.Sort(new ProductNameComparer())
代碼不編譯
而且爲什麼會Compare(Product x, Product y)
只有兩個產品作爲參數,但管理進行比較和排序列表(> 2)的產品呢?
您在這裏有兩個問題。您是否已經理解排序算法的基礎知識,如QuickSort,MergeSort,Insertion Sort? – JasonTrue 2011-12-16 07:29:31