[英]get xml attribute value of element based on another attribute using linq
[英]How to get another specified attribute using grouping by from LINQ to XML
我正在使用LINQ to XML。
这是我遇到的问题:
var objectives = (from c in xdoc.Descendents("Condition")
group c by (int)c.Attribute("ObjectiveID") into k
select k).ToDictionary(e=> e.Key, // HERE I MUST PUT ANOTHER ATTRIBUTE FROM c)
在我发表评论的地方,我需要获取另一个属性(c.Attribute(“ Objective”))。 但是我无法访问c属性并获得该属性。
分组可能每个组包含一个以上的项目。 另一方面,字典的每个键只能包含一个值。 您可能想要ToLookup()
,它允许每个键的值枚举:
var objectives = (from c in xdoc.Descendents("Condition")
group c by (int)c.Attribute("ObjectiveID") into k
select k).ToLookup(e=> e.Key, e => e.Select( x=> x.Objective));
如果您确实想使用字典,则只需选择每个分组的第一项即可:
var objectives = (from c in xdoc.Descendents("Condition")
group c by (int)c.Attribute("ObjectiveID") into k
select k).ToDictionary(e=> e.Key, e => e.First().Objective));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.