Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当使用lambda表达式知道子节点时,在嵌套查询中获取父节点_C#_Xml_Linq_Lambda - Fatal编程技术网

C# 当使用lambda表达式知道子节点时,在嵌套查询中获取父节点

C# 当使用lambda表达式知道子节点时,在嵌套查询中获取父节点,c#,xml,linq,lambda,C#,Xml,Linq,Lambda,当父/子关系中的子元素已知且基类存储在列表中时,使用lambda表达式获取父节点的最佳实践是什么 例如: <Countries> <Country name="x"> <States> <State name="y"> <Counties> <County name="z"/>

当父/子关系中的子元素已知且基类存储在列表中时,使用lambda表达式获取父节点的最佳实践是什么

例如:

<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发送到数据库。