Ejemplo n.º 1
0
 /// <summary>対象ノードからレベル順に、条件に一致したノードを全て削除する。</summary>
 public static T RemoveDescendant <T>(this ITreeNode <T> self, Predicate <T> predicate) where T :  ITreeNode <T>
 {
     if (predicate == null)
     {
         throw new ArgumentNullException("predicate");
     }
     self.Evolve(x => x.RemoveChild(predicate).Children, (x, y) => x.Concat(y));
     return((T)self);
 }