以下に、withとプロパティl
のリストを含むリストを示します。リストは、 ICompararを実装する次のクラスでアルファベット順に並べ替えることができます。Product
Name
Price
ProductNameComparer
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);
}
}
リストがどのようにソートされているのかわかりません。MSDN によると、ゼロ未満、ゼロ、またはゼロより大きいInt32タイプの値をCompareTo
返します。私が持っている場合:
string c = "Apple";
string d = "Orange";
return c.CompareTo(d)
関数は「-1」を返します。
しかし、コードl.Sort(-1)
の代わりに置き換えるとl.Sort(new ProductNameComparer())
コンパイルされません
また、なぜCompare(Product x, Product y)
2つの製品だけを引数として取り、それでも製品のリスト(> 2)を比較およびソートすることができたのでしょうか。