如何判断Xnode是否属于XElement类型?

时间:2014-10-27 05:21:15

标签: c# linq

我正在从所有后代节点元素的列表中运行linQ查询。我想区分和过滤掉XElement类型。除了使用.toString()并将其与“Element”进行比较之外,我该怎么做?

 string filename = @"C:\MyFiles\Programming\XML\MobileResponse2.xml";
        var elem = XElement.Load(filename);
        var query = from c in elem.DescendantNodes()
                    where c.NodeType.ToString() == "Element"  
                    select c;

注意:我可以使用elem.Descendant或elem.elements()但是我试图弄清楚如果一个对象属于某种类型,如何检查“Where”子句?

我打算用

where c.NodeType.ToString() is XElement

但是没有用。

2 个答案:

答案 0 :(得分:1)

编辑:刚注意到你的"注意" ;)

var query = elem.DescendantNodes().Where (w => w is XElement);

答案 1 :(得分:0)

试试这个

string filename = @"C:\MyFiles\Programming\XML\MobileResponse2.xml";
var elem = XElement.Load(filename);
var query = from c in elem.DescendantNodes()
            where c is XElement
            select c;