将List对象转换为扩展List的新对象

Mik*_*sen -1 c# asp.net-mvc-4

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

[CollectionDataContract(Name="Applications", ItemName="Application")]
public class ApplicationNamesList : List<string> { }
Run Code Online (Sandbox Code Playgroud)

我想要的xml输出应该是这样的

<Applications>
    <Application>...</Application>
    <Application>...</Application>
    <Application>...</Application>
</Applications>
Run Code Online (Sandbox Code Playgroud)

但是,一旦我有了一个List<string>对象并尝试将其投射到ApplicationNamesList我得到一个InvalidCastException.

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

Dan*_*rth 6

一个List<string>根本不是ApplicationNamesList.你需要做这样的事情:

var result = new ApplicationNamesList();
result.AddRange(list);
Run Code Online (Sandbox Code Playgroud)

随着list作为一个List<string>.

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

每辆保时捷(=> ApplicationNamesList)都是一辆汽车(=> List<string>).但并不是每辆车都是保时捷.

  • 好的,我只是想再次进入学校. (2认同)