C# 当使用lambda表达式知道子节点时,在嵌套查询中获取父节点
当父/子关系中的子元素已知且基类存储在列表中时,使用lambda表达式获取父节点的最佳实践是什么 例如:C# 当使用lambda表达式知道子节点时,在嵌套查询中获取父节点,c#,xml,linq,lambda,C#,Xml,Linq,Lambda,当父/子关系中的子元素已知且基类存储在列表中时,使用lambda表达式获取父节点的最佳实践是什么 例如: <Countries> <Country name="x"> <States> <State name="y"> <Counties> <County name="z"/>
<Countries>
<Country name="x">
<States>
<State name="y">
<Counties>
<County name="z"/>
</Counties>
</State>
</States>
</Country>
</Countries>
如果我知道县名称,那么获取州的最佳实践是什么?如果您将县节点作为C#中的一个元素,您可以这样做
XElement state = county.Ancestors().Where(x => x.Name ==
"State").SingleOrDefault();
在我的例子中,我已经将所有xml加载到一个列表中,该列表基于来自web服务的类,然后包含state和country的子元素。你能澄清你的答案吗,瑞安?我没有在列表中找到祖先的定义,使用system.xml.linq会产生更多问题。抱歉没有提前说明。@Greg您使用的是
XElement
还是XmlElement
?我按照建议尝试过使用XElement。理想情况下两者都不是,因为主元素是一个类,而每个包装器都是该类的列表数组。如果我深入研究,我会做一些类似的事情:var countyid=countries.firstordefault(x=>x.Name==“US”).states.firstordefault(y=>y.Name==“Texas”).countries.firstordefault(z=>z.ID==cmbCounty.selectedvalue).ID,但在这种情况下,我需要反向执行,因为我有县,但需要在事务中将stateid发送到数据库。