하나의 속성을 키로 사용하고 다른 속성을 값으로 사용하려고합니다.XElement에서 두 속성을 가져와 사전을 만듭니다. LINQ
Dictionary<string, XElement> test = xDoc.Descendants()
.Where<XElement>(t => t.Name == "someelement")
.ToDictionary<XElement, string>(t => t.Attribute("myattr").Value.ToString());
나는 (내가 원하는입니다) 키와 myattr 값으로 사전을 얻을 수 있지만, 값으로 전체 XElement를 개체 : 내가 사용하는 경우 (xDoc이 예에서하여 XDocument 개체입니다).
내가 원하는 것은 두 번째 속성을 선택하여 각 사전 항목의 값 속성으로 설정하는 것이지만이를 파악할 수는 없습니다.
1 Linq 선언문에서이 모든 작업을 수행 할 수 있습니까? 호기심이 나를 붙 잡았다!
건배!
위대한 작품입니다! 대답 주셔서 감사합니다.하지만 왜 캐스팅이 변경됩니까? 두 번째 표현식에서 주조하면 비교 자입니다. – AndrewC
@AndyC, 무엇을 캐스팅하려고합니까? .ToDictionary에는 여러 가지 오버로드가 있으며 그 중 하나가 비교자를 사용합니다. – driis
내 원래 코드에서을 가져 와서 작동 시켰습니다. 왜 그런지 궁금해. –
AndrewC