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

时间:2013-07-15 13:39:14

标签: c# asp.net-mvc-4

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

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

我正在使用的xml输出应该如下所示

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

但是,一旦我有List<string>个对象并尝试将其转换为ApplicationNamesList,我就会获得InvalidCastException

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

1 个答案:

答案 0 :(得分:6)

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

var result = new ApplicationNamesList();
result.AddRange(list);

listList<string>

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

每辆保时捷(=&gt; ApplicationNamesList)都是一辆车(=&gt; List<string>)。但并不是每辆车都是保时捷。