/// <summary> /// Tests if <paramref name="tree"/> has a child with key <paramref name="key"/>. /// /// If <paramref name="key"/> is null, then returns always false. /// </summary> /// <param name="tree"></param> /// <param name="key"></param> /// <returns></returns> public static bool HasChild(this ILineTree tree, ILine key) { if (key == null) { return(false); } if (!tree.HasChildren) { return(false); } IEnumerable <ILineTree> children = tree.GetChildren(key); if (children == null) { return(false); } return(children.Count() > 0); }
/// <summary> /// Search child by key. /// </summary> /// <param name="tree"></param> /// <param name="key"></param> /// <returns>child node or null if was not found</returns> public static ILineTree GetChild(this ILineTree tree, ILine key) => tree.GetChildren(key)?.FirstOrDefault();