C# 将列表对象强制转换为新对象扩展列表

C# 将列表对象强制转换为新对象扩展列表,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我正在尝试使用以下类生成自定义xml文档: [CollectionDataContract(Name="Applications", ItemName="Application")] public class ApplicationNamesList : List<string> { } [CollectionDataContract(Name=“Applications”,ItemName=“Application”)] 公共类应用程序名称列表:列表{} 我正在查看的xml输出

我正在尝试使用以下类生成自定义xml文档:

[CollectionDataContract(Name="Applications", ItemName="Application")]
public class ApplicationNamesList : List<string> { }
[CollectionDataContract(Name=“Applications”,ItemName=“Application”)]
公共类应用程序名称列表:列表{}
我正在查看的xml输出应该如下所示

<Applications>
    <Application>...</Application>
    <Application>...</Application>
    <Application>...</Application>
</Applications>

...
...
...
但是,一旦我有了一个
列表
对象并尝试将其强制转换到
应用程序名称列表
,我就会得到一个
InvalidCastException

这里有什么基本的东西我没有得到吗?

一个
列表
根本不是一个
应用程序名称列表
。您需要执行以下操作:

var result = new ApplicationNamesList();
result.AddRange(list);
列表
作为
列表

有时,使用真实世界的示例会有所帮助:


每辆保时捷(>
应用程序名称列表
)都是一辆汽车(>
列表
)。但并不是每辆车都是保时捷。

一些基本的东西:你有一个从B继承来的a级。你有一个B的实例,但你希望能把它转换成a。这与继承的工作原理正好相反。好吧,我只想再注册一次。保时捷的例子是+1