public NJS_OBJECT[] GetObjects() { List <NJS_OBJECT> result = new List <NJS_OBJECT> { this }; foreach (NJS_OBJECT item in Children) { result.AddRange(item.GetObjects()); } if (Parent == null && Sibling != null) { result.AddRange(Sibling.GetObjects()); } return(result.ToArray()); }