Mik*_*ike 16 .net c# linq xelement xattribute
如果XElement上的XAttribute不存在,是否有更简单/更好的方法来返回默认值?:
我试图以更短的方式写这个(因为它是一个双线):
var a = root.Attribute("testAttribute");
var v = (a == null ? "" : a.Value);
Run Code Online (Sandbox Code Playgroud)
我的方法:通过扩展方法:
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;
Run Code Online (Sandbox Code Playgroud)
这会产生任何副作用,如大规模的负面速度影响吗?有没有更好的方法呢?
Jon*_*eet 24
有一个更容易的方法来做到这一点:
var v = (string) root.Attribute("testAttribute") ?? "";
Run Code Online (Sandbox Code Playgroud)
在明确的转换,从XAttribute以string回报null,如果输入XAttribute为空.然后,空合并运算符有效地提供空字符串的默认值.
当然,您仍然可以编写扩展方法,但我会按照上述方法编写.为了更大的灵活性,我还将name参数更改为类型XName而不是string.
| 归档时间: |
|
| 查看次数: |
7160 次 |
| 最近记录: |