Мой вопрос заключается в условном создании 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", ""))
));
Представьте, что элемент "Author" является необязательным элементом, и если мы не знаем автора, мы просто не помещаем этот элемент в XML - простое и, на мой взгляд, уродливое решение - это создайте элемент как пустой элемент и удалите его потом.
Кто-нибудь знает, как сделать изящное решение, чтобы сказать что-то вроде этого:
condition_met ? new XElement("Author",variable_with_value) : do not create element
С наилучшими пожеланиями и не стесняйтесь спрашивать дополнительную информацию, если это необходимо.