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を介してコレクションを導入したいのですが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 ドキュメントを作成しているからです。