public void IdentifyAllChildren() { foreach (var child in OrbitedBy) { child.IdentifyAllChildren(); } Children = new HashSet <string>(OrbitedBy.Select(ob => ob.Name).Concat(OrbitedBy.SelectMany(ob => ob.Children))); }