2009-09-10 3 views
1

개체 초기화 식 내부에서 람다 식을 사용할 수 있습니까? 아래의 코드를보고하십시오 : 대신컬렉션 초기화가있는 lambdas를 사용하는 C#

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를 []

감사를 반환하는 람다 표현식을 사용하려면!

답변

1
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() 
       ) 
      ) 
     ); 
+0

고맙습니다. 귀하의 답변은 제 질문에 대한 정답이었습니다. 그러나 나는 약간 다른 것을 갖고 싶었고 당신의 답은 나를 올바른 방향으로 인도했습니다. 아래의 솔루션을 참조하십시오. 다시 한 번 감사드립니다. –

0

다음은 최종 해결책입니다. 따라서 외부 함수 대신 인라인으로 수행하고 있습니다.

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

     ) 
    ) 
); 
관련 문제