public static IEnumerable <TSource> Clone <TSource>(this IEnumerable <TSource> source) where TSource : new() { if (!source.IsNullOrEmpty()) { return(ObjectCopier.CloneList <TSource>(source)); //IEnumerable<TSource> result = new Collection<TSource>(); //foreach (var item in source) //{ // (result as Collection<TSource>).Add(Utilities.Clone<TSource>(item)); //} //return result; } return(new Collection <TSource>()); }