このモデルをセットアップする最良の方法を見つけようとしています。ほぼ一通りやったのですが、別の方法を検討中です。これは学習体験なので、無駄な時間は問題ではありません。
namespace FirstWay
{
public class CrateOfBags
{
public string crateId { get; set; }
public string originCountry { get; set; }
public List<BagOfApples> bagList { get; set; }
}
public class BagOfApples
{
public double weight { get; set; }
public string bagId { get; set; }
public List<apple> appleList { get; set; }
}
public class apple
{
public string appleId { get; set; }
public string color { get; set; }
public Boolean rotten { get; set; }
}
}
//またはこれ
namespace SecondWay
{
public class CrateOfBags
{
public string crateId { get; set; }
public string originCountry { get; set; }
}
public class BagOfApples : CrateOfBags
{
public string bagId { get; set; }
public double weight { get; set; }
}
public class apple : BagOfApples
{
public string appleId {get;set;}
public string color { get; set; }
}
}
考えられる質問
アップルの質問 : 腐ったリンゴは何個配達されましたか? 腐ったリンゴはどの袋や箱から出てきましたか? 最初の方法: 各クレート、バッグ、リンゴ、カウントの順にループできます。2 番目の方法: りんごだけをループして、親プロパティを HashSet に追加することができます (重複を防ぐ 1 つの方法)。
クレートの質問。各国からの箱の数を見つけますか? 最初の方法: クレートだけをループして、カウントリスト、配列などを保持します。2 番目の方法: すべてのリンゴをループ処理し、箱のみを処理する必要があります。
私が直面した問題の 1 つは、リンゴ自体についてほとんど知らないことです。クレートからforeachループを開始することによってのみ、それがどのクレートからのものかを知っています
しかし、「特定のバッチ (ID による) には青リンゴがいくつあるか?」などの質問をしたい場合は、方法によっては私も問題を抱えています。
犬が動物の子であるのと同じように、りんごが袋の子であると言うのは、私には厄介に思えます。ただし、親プロパティの bagid を変更するだけでリンゴが入っているバッグを切り替えるなど、リンゴを自由に動かして操作できるというアイデアが気に入っています。特定の質問に対する解決策を探しているのではなく、これらのいずれかが別のものよりも優れているか (より柔軟で効率的で直感的)、または別の手法を使用するなど、何かが完全に欠けているかどうかだけです。どうもありがとう。
PS これは実際のモデルではありませんが、かなりまともな表現です。