Если элементы списка имеют тип значений, то чтобы склонировать list достаточно сделать следующее:
List<int> newList = new List<int>(oldList);
Если элементы имеют ссылочный тип и имеют конструктор копирования, то тогда можно сделать так:
List<SomeType> oldList = new List<SomeType>(); List<SomeType> newList = new List<SomeType>(oldList.Count); oldList.ForEach((item)=> { newList.Add(new SomeType(item));});