我很难尝试创建查询。这是文件:
<Root>
<Summary>
<Objective ID="1">
<Exam Result="70" />
<Exam Result="90" />
</Objective>
<Objective ID="2">
<Exam Result="100" />
<Exam Result="90" />
</Objective>
</Summary>
</Root>
我需要获取List&lt;中的值列表与LT;双&GT;取代。第一个列表是否为目标,最后一个是存储每个结果。
如有任何疑问,请告诉我
答案 0 :(得分:6)
我怀疑你想要:
var results = doc.Descendants("Objective")
.Select(x => x.Elements("Exam")
.Select(exam => (double) exam.Attribute("Result"))
.ToList())
.ToList();
或者,如果目标ID很重要,您可能需要考虑Dictionary<int, List<double>>
:
var results = doc.Descendants("Objective")
.ToDictionary(x => (int) x.Attribute("ID"),
x => x.Elements("Exam")
.Select(y => (double) y.Attribute("Result"))
.ToList());
或Lookup<int, double>
:
var results = doc.Descendants("Exam")
.ToLookup(x => (int) x.Parent.Attribute("ID"),
x => x.Select(y => (double) y.Attribute("Result"));