/// <summary> /// Append another stack to the top of this stack /// The rhs will be reversed and pushed onto 'this' stack. That will /// maintain the order of the items in the resulting stack. So the top /// of 'rhs' will be the top of the newly created stack. 'this' stack /// will be under the 'rhs' stack. /// </summary> /// <param name="rhs">Stack to append</param> /// <returns>Appended stacks</returns> public Stck <T> Append(Stck <T> rhs) { var self = this; foreach (var item in rhs.Rev()) { self = self.Push(item); } return(self); }