internal List AddList(List l) { // for thread safety we require a temporary copy of their data. object[] them = l.GetObjectArray(); lock (this) { object[] ret = new object[size + them.Length]; Array.Copy(data, 0, ret, 0, size); Array.Copy(them, 0, ret, size, them.Length); return(new List(ret)); } }