可能重複:
Casting a generic collection to base type如何將後代對象列表轉換爲父對象列表而不創建新列表?
我有一個A類和從類A
繼承在另一個類B類我有一個名單,我想將它作爲List返回,但不創建新List,因爲我想使用可觀察集合,並且需要兩個列表相同。
任何想法?謝謝。
可能重複:
Casting a generic collection to base type如何將後代對象列表轉換爲父對象列表而不創建新列表?
我有一個A類和從類A
繼承在另一個類B類我有一個名單,我想將它作爲List返回,但不創建新List,因爲我想使用可觀察集合,並且需要兩個列表相同。
任何想法?謝謝。
讓它成爲IEnumerable<>
而不是List<>
?那麼你的財產可以返回BaseCollectionName.Select(a => (B)a)
,你實際上不需要做一個新的列表?
否則,沒有簡單的方法將List<A>
轉換爲List<B>
而不會創建新的List<>
對象。
爲什麼你的答案中有太多問題? –
可能是因爲我建議進行更深層次的架構更改(並可能做出一些假設),並且由於某種原因,他們可能不會與OP正在進行的操作有關... – eouw0o83hf
你不能;列表是不變的,即使在4.0。 IEnumerable接口支持差異 - 但是這會給你完全可觀察的功能。 –