Мне нужно заказать дочерние элементы XML-элемента. Детские элементы содержат несколько элементов, которые не являются обязательными.Перечисляемый OrderBy используется для заказа коллекции несколькими необязательными полями
То, что я пытался до сих пор:
var orderedElements = parent.Elements("ChildElement")
.OrderBy(child => child.Element("Field1").Value.ToString())
.ThenBy(child => child.Element("Field2").Value.ToString())
.ToList();
Проблема заключается в том, что Field2 не является обязательным элементом ChildElement
и я, очевидно, получить нулевой ссылочный исключение, если Field2
нет в ChildElement
. Можно ли изменить аргумент ThenBy()
, чтобы заказать ChildElements
после Field2
, только если существует в ChildElements
?
Почему бы вам не сделать метод расширения, называемый ValueOrDefault (string elementName) '? –