【发布时间】:2012-08-13 21:07:05
【问题描述】:
我有一个IEnumerable<Item>,其中 Item 有一个名为“widgets”的属性,其中包含 xml 作为字符串。 xml 包含每个小部件的元素,每个小部件可以包含一个名为“foo”的可选元素。例如:
<widgets>
<widget code="A">
<foo>1</foo>
</widget>
<widget code="B" />
</widgets>
我可以将IEnumerable<Item> 展平为代表小部件的匿名类型的 IEnumerable 吗?
【问题讨论】:
-
那么,您是说获取
IEnumerable<Item>的每个元素,并返回一个新的IEnumerable<a'>,其中包含来自XML 的所有<widget />元素作为不同的项目? -
是的,理想情况下,我还希望从项目的属性中填充匿名类型的几个属性。
-
您是否正在寻找类似 @987654327@ 的东西,其中 Widget 和 Foos 是 IEnumerable
包含从 Xml 检索到的值,或者是 select new { ItemName = item.Name, WidgetXmlElements = widgetXmlElements },其中 WidgetXmlElements 是 IEnumerable派生自小部件元素?
标签: c# linq linq-to-xml linq-to-objects