public T RemoveEnd() { T o = default(T); if (list.Last != null) { o = list.Last.data; list.Last.data = default(T); list.Remove(list.Last); } return o; }