オブジェクトをインスタンス化するクラスのメソッド (Q() と呼びます) の戻り値に応じて、オブジェクトのリストを並べ替えようとしています。クラス Decaf と Regular はどちらも同じクラス Coffee から派生しています。2 つの派生クラスには、問題のメソッド 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());
}
}
このリストを 2 つのクラスのメソッド Q() の値で昇順に並べ替えるにはどうすればよいですか? 必要に応じて、クラス コードを投稿できます。