【发布时间】:2013-12-01 08:42:39
【问题描述】:
我必须对 XML 元素的子元素进行排序。子元素包含多个非强制性元素。
到目前为止我尝试的是:
var orderedElements = parent.Elements("ChildElement")
.OrderBy(child => child.Element("Field1").Value.ToString())
.ThenBy(child => child.Element("Field2").Value.ToString())
.ToList();
问题是 Field2 不是ChildElement 的强制元素,如果Field2 不存在于ChildElement 中,我显然会得到一个空引用异常。仅当Field2 存在于ChildElements 中时,是否可以修改ThenBy() 的参数以在Field2 之后订购ChildElements?
【问题讨论】:
-
为什么不做一个名为
ValueOrDefault(string elementName)的扩展方法?
标签: c# linq enumerable