Cla*_*dan 11 xelement linq-to-xml
我的问题是有条件地创建XElements,也就是说,如果满足某些条件,创建XElement,如果没有,跳过创建XElement?在这个时间点,我可以创建空的XElements,然后删除所有空元素,通过检查,如果IsEmpty为真,但不知何故感觉不对...
我觉得,一个小例子可能是有序的:
XDocument doc = new XDocument(new XDeclaration("1.0","utf-8","yes"),
new XElement("Books",
new XElement("Book", new XElement("Title", "Essential LINQ"), new XElement("Author", "Charlie Calvert,Dinesh Kulkarni")),
new XElement("Book", new XElement("Title", "C# in Depth"), new XElement("Author", "Jon Skeet")),
new XElement("Book", new XElement("Title", "Some Title"), new XElement("Author", ""))
));
Run Code Online (Sandbox Code Playgroud)
想象一下,"作者"元素是一个可选元素,如果我们不了解作者,我们根本就不会将该元素放在XML中 - 简单的,在我看来,丑陋的解决方案就是创建元素,作为一个空元素,然后删除它.
任何人都知道如何制作一个优雅的解决方案,所以说这样的话:
condition_met ? new XElement("Author",variable_with_value) : do not create element
Run Code Online (Sandbox Code Playgroud)
最好的问候,如果需要,可以随时询问更多信息.
Jon*_*eet 28
使用构造中跳过空值的事实:
condition_met ? new XElement("Author", variable_with_value) : null
Run Code Online (Sandbox Code Playgroud)
(LINQ to XML充满了像这样的简洁设计决策,这使得它很愉快.)
| 归档时间: |
|
| 查看次数: |
5554 次 |
| 最近记录: |