Вы уже можете сделать его немного лучше, чем с помощью оператора объединения нулей. Однако справиться с отсутствующим элементом groupby
сложнее:
select new Export
{
OutputFileName = (string) Data.Element("outputFileName") ?? "",
GroupByProperty = Data.Element("groupBy") == null ? ""
: (string) Data.Element("groupBy").Element("property") ?? ""
}).First();
Преобразование в строку просто возвращает ноль, если ссылка на элемент равна нулю.
Альтернативой будет:
GroupByProperty =
(string) Data.Elements("groupBy").Elements("property").FirstOrDefault() ?? ""
Использует метод расширения, который позволяет вам вызывать Elements
для IEnumerable<XElement>
..., чтобы (лениво) оценивать последовательность каждого элемента property
в элементе groupBy
в Data
затем возьмите первый из них, если таковой существует, и примените преобразование строк.