質問
オブジェクト初期化式内でラムダ式を使用することは可能ですか?以下のコードをご覧ください:
XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("data",
new XElement("album",
new XElement("slide1"),
new XElement("slide2"),
new XElement("slide3")
)
)
);
代わりに...
new XElement("slide1"),
new XElement("slide2"),
new XElement("slide3")
... XElement []
を返すラムダ式を使用したい解決
Func<XElement[]> elementCreatorFunc =
() => new[] { new XElement(...), new XElement(...) };
XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("data",
new XElement("album",
elementCreatorFunc()
)
)
);
他のヒント
以下が最終的な解決策です。したがって、外部関数の代わりにインラインで実行しています:
XDocument doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
new XElement("data",
new XElement("album",
(from item in Model.Items
select new XElement("slide",
new XAttribute("title", item.title)))
)
)
);
所属していません StackOverflow