我有以下代码可以很好XElement
地从类的实例属性中返回一个对象:
public MyClass1 MyClass1 {get; set;}
public MyClass2 MyClass2 {get; set;}
var elements = new[]
{
//Calls to .GetXML() return an XElement instance
this.MyClass1.GetXML(),
this.MyClass2.GetXML()
};
return new XElement("Root",
elements.Where(el => el != null && !el.IsEmpty));
问题是我想通过IList
for say引入一个集合MyClass3
,但不知道如何将集合中的所有项目放入我的elements
数组中。所以我现在想要以下内容:
public MyClass1 MyClass1 {get; set;}
public MyClass2 MyClass2 {get; set;}
public IList<MyClass3> MyClass3 {get; set;}
var elements = new[]
{
this.MyClass1.GetXML(),
this.MyClass2.GetXML(),
this.MyClass3.ToList().Select(x => x.GetXML()) //Not working
};
我尝试过使用组合,Select
甚至更改IList
为List
只是为了看看是否.ForEach
可行,但也没有。我得到的错误是:“没有找到隐式类型数组的最佳类型”,无论我尝试什么方法。
如何将我的IList
属性实例中的所有元素放入elements
数组中?任何帮助表示赞赏,谢谢!
编辑:必须保留顺序(即 MyClass1、MyClass2、MyClass3),所以如果我引入另一个元素MyClass4
,它必须在MyClass3
. 原因是我正在编写具有特定结构的 XML 文档。