可能重复:
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接口支持差异 - 但是这会给你完全可观察的功能。 –