2012-01-20 44 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

相关问题