とから派生したタイプの異種シーケンスがあるAnimal
としFood
ます。
これは、派生型のインスタンスで変換される必要があります:Fed
、NotFed
およびBadFed
。
var seq1 = new[] { new Fish(), new FishFood(), new Horse(), new DogFood(), new Dog() };
に変換する必要があります
var seq2 = new [] { new FishFed(), new HorseBadFed(), new DogNotFed() };
ロジックは次のとおりです。
Animal
次の要素に適切な食べ物がある場合、インスタンスXXXFed
が作成されます。次の要素に食べ物がある場合。しかし、そのためには良くありません
Animal
->XXXBadFed
;そうでなければ、次の要素の食べ物でない場合->
XXXNotFed
。
次の項目を条件としてシーケンスを処理することは、反復では簡単ではありません。
IEnumerable<T>
Linqまたは拡張メソッドを使用して、状態を含むシーケンス処理を抽象化するにはどうすればよいですか?
Aggregate
同様のことを行うためにアキュムレータ関数を使用することを私は知っています。これは私の場合ですか?または、それを使用して新しいシーケンスを作成する方がよいでしょうか。
命令型コードなしでこのような問題を解決するためにメモ化関数を使用するのは正しいですか?