2012-01-20 43 views
0

可能重複:
Casting a generic collection to base type如何將後代對象列表轉換爲父對象列表而不創建新列表?

我有一個A類和從類A

繼承在另一個類B類我有一個名單,我想將它作爲List返回,但不創建新List,因爲我想使用可觀察集合,並且需要兩個列表相同。

任何想法?謝謝。

+2

你不能;列表是不變的,即使在4.0。 IEnumerable接口支持差異 - 但是這會給你完全可觀察的功能。 –

回答

0

讓它成爲IEnumerable<>而不是List<>?那麼你的財產可以返回BaseCollectionName.Select(a => (B)a),你實際上不需要做一個新的列表?

否則,沒有簡單的方法將List<A>轉換爲List<B>而不會創建新的List<>對象。

+0

爲什麼你的答案中有太多問題? –

+0

可能是因爲我建議進行更深層次的架構更改(並可能做出一些假設),並且由於某種原因,他們可能不會與OP正在進行的操作有關... – eouw0o83hf

相關問題