c #, mit Lambda-Ausdrücke mit Sammlung Initialisierung
Frage
Ist es möglich, einen Lambda-Ausdruck innerhalb eines Objekts Initialisierungsausdruck zu benutzen? Bitte schauen Sie auf den folgenden Code:
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")
)
)
);
statt ...
new XElement("slide1"),
new XElement("slide2"),
new XElement("slide3")
... Ich mag einen lamda Ausdruck verwenden, die XElement []
zurückLösung
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()
)
)
);
Andere Tipps
Im Folgenden ist die endgültige Lösung. Anstatt also eine externe Funktion es inline ich tue:
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)))
)
)
);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow