public virtual IEnumerable <Attribute> GetAllAttributes() { foreach (var item in Attributes) { yield return(item); } if (Father == null) { yield break; } foreach (var item in Father.GetAllAttributes()) { yield return(item); } }