我正在从所有后代节点元素的列表中运行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
但是没有用。
答案 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;