2013-07-15 42 views
1

我有一個XElement對象,該對象具有下面的結構。 如何從TestResults根節點中選擇DataPointValue屬性不同的所有CalcConceptId子節點,並將它們作爲XElement存儲在數組/列表中?我希望能夠將每個孩子存儲爲另一個XElement,這樣我就可以遍歷它們並從每個孩子中取出SeriesAsOfDate和數據節點。如何獲取子節點並將它們從父節點分組

<TestResults RSSD="123456"> 
    <CalcConceptId Id="110" DataPointValue="10"> 
    <SeriesAsOfDate Value="2013-07-10T00:00:00"> 
     <Data AsOfDate="7/10/2013" ExpectedValue="1" /> 
     <Data AsOfDate="7/3/2013" ExpectedValue="14" /> 
     <Data AsOfDate="6/26/2013" ExpectedValue="55" /> 
    </SeriesAsOfDate> 
    </CalcConceptId> 
    <CalcConceptId Id="110" DataPointValue="20"> 
    <SeriesAsOfDate Value="2013-07-10T00:00:00"> 
     <Data AsOfDate="7/10/2013" ExpectedValue="4" /> 
     <Data AsOfDate="7/3/2013" ExpectedValue="34" /> 
     <Data AsOfDate="6/26/2013" ExpectedValue="1" /> 
    </SeriesAsOfDate> 
    </CalcConceptId> 
</TestResults> 

回答

1

我想你想所有DataPointValue分組的CalcConceptId節點,但它是一個有點不清楚什麼是「凡DataPointValue是不同」的意思。

反正這裏是我想你想...

var calcConceptIdGroupedByDataPointValue = 
     doc.Descendants("CalcConceptId") 
      .GroupBy(calcConceptId => calcConceptId.Attribute("DataPointValue")); 
0

我不是100%肯定......但如果我得到你所問的,你在找什麼?

//assuming the XElement is called Data: 
var result = 
    data.Elements().GroupBy(x => int.Parse(x.Attribute("DataPointValue"))) 
     .Select(g => g.First());