C# 3.0 c#,使用lambdas和集合初始化

C# 3.0 c#,使用lambdas和集合初始化,c#-3.0,lambda,C# 3.0,Lambda,是否可以在对象初始化表达式中使用lambda表达式?请看下面的代码: XDocument doc = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XElement("data", new XElement("album", new XElement("slide1"), new XElement("slide2

是否可以在对象初始化表达式中使用lambda表达式?请看下面的代码:

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")
…我想使用一个lamda表达式,该表达式返回XElement[]

Func elementCreatorFunc=
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()
                )
            )
        );
()=>new[]{new-XElement(…),new-XElement(…)}; XDocument doc=新XDocument( 新的XDE声明(“1.0”、“utf-8”、“是”), 新XElement(“数据”, 新专辑, elementCreatorFunc() ) ) );
函数元素CreatorFunc=
()=>new[]{new-XElement(…),new-XElement(…)};
XDocument doc=新XDocument(
新的XDE声明(“1.0”、“utf-8”、“是”),
新XElement(“数据”,
新专辑,
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)))

        )
    )
);

以下是最终解决方案。因此,我没有使用外部函数,而是使用内联方式:

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)))

        )
    )
);

非常感谢你。你的回答正是我问题的正确答案。然而,我想有一些稍微不同的东西,你的回答引导我进入正确的方向。请参阅下面的解决方案。再次非常感谢,非常感谢。你的回答正是我问题的正确答案。然而,我想有一些稍微不同的东西,你的回答引导我进入正确的方向。请参阅下面的解决方案。再次非常感谢。