我做了一个简单的方法,它从特定节点返回一个字符串值(或者如果它不存在,则返回null)。为什么.Any()在这个特定的XElement扩展方法中不起作用?
private static string getValueIfExist(XElement element, string nodeName)
{
return element.Elements(nodeName).Any() ? element.Elements(nodeName).First().Value : null;
}
现在我想使用该方法的XElement的扩展方法:
public static string GetValueIfExist(this XElement element, string nodeName)
{
return element.Elements(nodeName).Any() ? element.Elements(nodeName).First().Value : null;
}
不过,这并不编译。出于某种原因,Any()和First()不再被视为IEnumerable的一部分。我究竟做错了什么?是否有另一种方法来获得这种特定的扩展方法?
你得到的错误是什么? – svick
您是否添加了System.Linq命名空间? –
为什么你需要这种扩展方法?听起来好像是'(string)element.Element(nodeName)'应该做的。或者'(string)element.Elements(nodeName).FirstOrDefault()'。 –