public object Clone() { var copy = (DataTablesConfiguration)MemberwiseClone(); copy.Order = Order.Select(o => (IList <string>)o.Select(c => (string)c.Clone()).ToList()).ToList(); copy.AdditionalOptions = AdditionalOptions.DeepClone(); copy.Columns = Columns.Select(c => (DataTablesConfigurationColumn)c.Clone()).ToList(); return(copy); }