我想根據方法的返回值(在實例化對象的類中調用它的Q())對對象列表進行排序。 Decaf和Regular都來自同一個班級Coffee。這兩個派生類也有不同的Q()方法的實現。它看起來像這樣:排序對象列表
static void Main(string[] args)
{
Decaf decafCoffee = null;
Regular regularCoffee = null;
List<Coffee> inventory = new List<Coffee>();
if (type.StartsWith("D:"))
{
// The value of M changes based on certain criteria
decafCoffee = new Decaf(name, D, C, M);
inventory.Add(decafCoffee);
}
else if (type.StartsWith("R:"))
{
regularCoffee = new Regular(name, D, C, M);
inventory.Add(regularCoffee);
}
for (int j = 0; j < inventory.Count; j++)
{
Console.WriteLine("{0}", inventory[j].toString());
}
}
我如何排序的方法Q(的價值)在爲了增加這兩類這個名單?如果需要,我可以發佈課程代碼。
比IComparable快得多! – 2013-04-26 04:22:33
遠不如IComparable可怕! – 2013-04-26 06:03:42