Often we need to create copy of objects. This sample method can work for all types
so long as they are serializable.
public static T Clone<T>(T source)
T dest = default(T);
using (var ms = new MemoryStream())
var formatter = new BinaryFormatter();
ms.Position = 0;
dest = (T)formatter.Deserialize(ms);