我做了一個簡單的方法,它從特定節點返回一個字符串值(或者如果它不存在,則返回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()'。 –