c #, en utilisant lambdas avec l'initialisation de la collection
Question
Est-il possible d'utiliser une expression lambda dans une expression d'initialisation d'objet? Veuillez regarder le code ci-dessous:
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")
)
)
);
au lieu de ...
new XElement("slide1"),
new XElement("slide2"),
new XElement("slide3")
... Je souhaite utiliser une expression lamda qui renvoie XElement []
La solution
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()
)
)
);
Autres conseils
Ce qui suit est la solution finale. Donc, au lieu d’une fonction externe, je le fais en ligne:
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)))
)
)
);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow