繁体   English   中英

如何使用从LINQ到XML的分组获得另一个指定的属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM