/// <summary> /// 指定された条件式要素自身とその子要素を取得します。 /// </summary> /// <param name="element">条件式要素</param> /// <returns>条件式要素のコレクション</returns> public static IEnumerable <PredicateElement> ChildrenAndSelf(this PredicateElement element) { if (element == null) { throw new ArgumentNullException(nameof(element)); } yield return(element); foreach (var x in element.Children()) { yield return(x); } }
/// <summary> /// 指定された条件式要素の子孫要素を取得します。 /// </summary> /// <param name="element">条件式要素</param> /// <returns>条件式要素のコレクション</returns> public static IEnumerable <PredicateElement> Descendants(this PredicateElement element) { if (element == null) { throw new ArgumentNullException(nameof(element)); } foreach (var child in element.Children()) { yield return(child); foreach (var grandChild in child.Descendants()) { yield return(grandChild); } } }