通用列表之间的分配

时间:2011-04-10 03:36:26

标签: c#

如何在不同的命名空间中分配相同的对象列表。  list,list2

list = list2;

无法隐式转换类型 System.Collections.Generic.List<namespace1.MyData>System.Collections.Generic.List<namespace2.MyData>

2 个答案:

答案 0 :(得分:3)

这听起来像是一个已生成的WCF代理,您希望重用现有的类库而不是代理生成的类库。

如果是这种情况,请参阅this answerthis answer

修改

作为对此的跟进,偶尔您可能处于无法重用公共类定义的位置(在Silverlight的情况下,您必须创建一个可能不实用的全新程序集)。如果您处于此位置,则还有另一种选择:代理生成的类定义为 partial ,因此您可以使用返回的Clone()Copy()方法扩展它们来自其他命名空间的相同对象,复制的值。

答案 1 :(得分:1)

如果对象可以相互转换,你可以这样做,但是它通过列表循环并制作副本,这不是直接的分配。

var newList = oldList.Cast<NewType>().ToList();