laz*_*ymf 8 c# xml linq-to-xml
我当前的项目(C#3.5)有很多这样的代码(elem是XElement的一个实例):
textbox1.Text = elem.Element("TagName") == null ? "" : elem.Element("TagName").Value;
Run Code Online (Sandbox Code Playgroud)
有没有办法在不重复调用elem.Element()且不使用扩展方法的情况下编写相同的东西?也许使用lambdas?(但我无法弄清楚如何.)
aL3*_*891 13
XElement显式转换为实际调用.Value的String(以及一堆其他类型).换句话说,你可以这样写:
var value = (String)elem.Element("TagName");
Run Code Online (Sandbox Code Playgroud)
我认为如果实际元素也为空,这将返回null
-编辑-
经核实,这是一个例子:
var x = new XElement("EmptyElement");
var n = (String)x.Element("NonExsistingElement");
Run Code Online (Sandbox Code Playgroud)
n 在此之后将为null.
是.你可以这样写:
(string)elem.Element("TagName") ?? "";
Run Code Online (Sandbox Code Playgroud)
这是空合并运算符.
这意味着如果左侧不为空,则使用左侧.如果为null,则使用右侧.
| 归档时间: |
|
| 查看次数: |
12548 次 |
| 最近记录: |