C#:如何优雅地获取所有后代 XElements,包括 XElements 的根元素?

C#: How to get all descendant XElements including root element of an XElements elegantly?

我试图根据特定属性的存在获取所有后代 XElement,包括 XElement 的根元素。我不太好的尝试:

var myXElements = form.FormData.Descendants().Where(e => e.Attributes().Where(a => a.Name == myProperty).Count() > 0).ToList();
// Extra for root element
if (form.FormData.Attribute(myProperty) != null)
{
    myXElements.Add(form.FormData);
}

其中 form.FormData 是 XElement 类型(我从 .dll 中接收它)并且 myProperty 是特定的 属性.

有没有更优雅的方法来实现这个?

var myXElements = form.FormData.DescendantsAndSelf().Where(e => e.Attribute(myProperty) != null).ToList()