В настоящее время я использую следующий метод расширения, который я сделал для получения значений элементов, используя LINQ to XML. Он использует Any()
, чтобы увидеть, есть ли какие-либо элементы с данным именем, и если они есть, он просто получает значение. В противном случае он возвращает пустую строку. Основное использование этого метода - когда я разбираю XML в объектах C #, поэтому я не хочу, чтобы что-то взрывалось, когда элемента там нет.
У меня есть другие методы расширения для другого типа данных, такие как bool, int и double, и некоторые пользовательские методы для разбора пользовательских строк в перечисления или bools. У меня также есть те же методы для работы с атрибутами.
Есть ли лучший способ сделать это?
/// <summary>
/// If the parent element contains a element of the specified name, it returns the value of that element.
/// </summary>
/// <param name="x">The parent element.</param>
/// <param name="elementName">The name of the child element to check for.</param>
/// <returns>The value of the child element if it exists, or an empty string if it doesn't.</returns>
public static string GetStringFromChildElement(this XElement x, string elementName)
{
return x.Elements(elementName).Any() ? x.Element(elementName).Value : string.Empty;
}