如何通过XDocument获取包含Teaching或Teaching2节点的单一后代列表?
完全可以把这两类节点合并成一个单一的后代节点列表,给你两种常用的实现方式:
方式一:用LINQ的Concat合并两个结果集
直接把两次Descendants查询的结果拼接在一起:
XDocument docAssignHistory = XDocument.Load(strHistoryDatabase); var combinedList = docAssignHistory.Descendants("Teaching") .Concat(docAssignHistory.Descendants("Teaching2"));
方式二:单次遍历筛选目标节点
如果文档规模较大,这种方式更高效——只遍历一次文档,通过条件筛选出Teaching和Teaching2节点:
XDocument docAssignHistory = XDocument.Load(strHistoryDatabase); var combinedList = docAssignHistory.Descendants() .Where(node => node.Name == "Teaching" || node.Name == "Teaching2");
两种方式都能得到包含两类节点的单一列表,你可以根据实际场景选择。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

