public static T[] Clone <T>(T[] original, NewCaller <T> newObject) where T : class { if (original == null) { return(null); } T[] cloned = new T[original.Length]; for (int i = 0; i < original.Length; i++) { cloned[i] = newObject(original[i]); } return(cloned); }
public static List <T> Clone <T>(List <T> original, NewCaller <T> newObject) where T : class { if (original == null) { return(null); } List <T> cloned = new List <T>(); for (int i = 0; i < original.Count; i++) { cloned.Add(newObject(original[i])); } return(cloned); }
public static T Clone <T>(T original, NewCaller <T> newObject) where T : class { return(original == null ? null : newObject(original)); }