internal List <TValue> GetSorted() { List <TValue> ret = new List <TValue>(); if (left != null) { ret.AddRange(left.GetSorted()); } ret.Add(this.value); if (right != null) { ret.AddRange(right.GetSorted()); } return(ret); }