如果 XElement 上的 XAttribute 不存在,有没有更简单/更好的方法返回默认值?
我试图用更短的方式来编写这个代码(因为它本来是两行):
var a = root.Attribute("testAttribute");
var v = (a == null ? "" : a.Value);
我的做法:通过扩展方法实现:
public static XAttribute Attribute(this XElement obj, string name, string defaultValue)
{
if (obj.Attribute(name) == null)
return new XAttribute(name, defaultValue);
return obj.Attribute(name);
}
var v = root.Attribute("testAttribute", "").Value;
这会有任何副作用,如负面的速度影响吗? 有没有更好的方法来做到这一点?
System.Xml.Linq
命名空间广泛使用隐式转换,这一点并不明显,因为智能感知无法揭示它们。 - Olivier Jacot-Descombesvar v = root.Attribute("testAttribute")?.Value ?? "";
。 - Khale_Kitha