【发布时间】:2015-09-08 20:40:51
【问题描述】:
我有一组 XML 文件,其中包含两个可能的根节点值,但具有相同的结构和子元素。我遍历每个文件并构建一个Object 类型的对象r,然后将其添加到一个新的objects 集合中:
foreach (var file in files)
{
var r = from x in file.Descendants("RootNode")
select new Object
{
Field = ((string) x.Element("Field"))
};
objects.AddRange(r);
}
我想做这样的事情:
var r = from x in file.Descendants("RootNode") || file.Descendants("OtherRootNote")
但除了有两个循环之外,无法找到一种合乎逻辑的方法。这是唯一的方法吗?
【问题讨论】:
-
我相信我可以使用
.Union(),但这仍然需要我编写两个select块来创建我的Object,这并不理想。 -
是的,您确实可以使用
Union()- 后代返回IEnumerable<Element>,因此您可以对其执行标准 LINQ。
标签: c# asp.net xml linq xmldocument