我当前的项目(C#3.5)有很多这样的代码(elem是XElement的一个实例):
textbox1.Text = elem.Element("TagName") == null ? "" : elem.Element("TagName").Value;
有没有办法在不重复调用elem.Element()且不使用扩展方法的情况下编写相同的东西?
也许使用lambdas? (但我不知道怎么做。)
最佳答案
XElement具有对String(和a bunch of other types)的显式转换,该转换将实际调用.Value。
换句话说,您可以这样写:
var value = (String)elem.Element("TagName");
我认为如果实际元素也为null,它将返回null
-编辑-
已验证,
这是一个例子:
var x = new XElement("EmptyElement");
var n = (String)x.Element("NonExsistingElement");
此后
n
将为null。