可能性の重複:
Casting a generic collection to base type新しいリストを作成せずに親オブジェクトのリストに子孫オブジェクトのリストをキャストする方法はありますか?
私はクラスAと別のクラスではクラスA
から継承したクラスBを持っている私がリストを持っていると私は希望リストとして返すが、新しいリストを作成することなく、観測可能なコレクションを使用し、両方のリストを同じにする必要があるため。
アイデア?ありがとう。
可能性の重複:
Casting a generic collection to base type新しいリストを作成せずに親オブジェクトのリストに子孫オブジェクトのリストをキャストする方法はありますか?
私はクラスAと別のクラスではクラスA
から継承したクラスBを持っている私がリストを持っていると私は希望リストとして返すが、新しいリストを作成することなく、観測可能なコレクションを使用し、両方のリストを同じにする必要があるため。
アイデア?ありがとう。
List<>
の代わりにIEnumerable<>
にしますか?あなたのプロパティはBaseCollectionName.Select(a => (B)a)
を返すことができ、実際に新しいリストを作成する必要はありませんか?
それ以外の場合は、List<>
オブジェクトを作成せずにList<A>
からList<B>
にキャストする簡単な方法はありません。
あなたの答えにはなぜ多くの質問がありますか? –
おそらく、私は深いアーキテクチャの変更を提案しているので(おそらく何らかの前提を作る)、彼らは何らかの理由でOPが何をしようとしているのではないかと思います。 – eouw0o83hf
できません。リストは不変で、4.0でも変わりません。しかし、IEnumerable <...>のインターフェースはサポートの違いですが、それはあなたに完全な観測可能な機能を与えるでしょう。 –