How do I clone a generic list in C#?

前端 未结 26 2490
失恋的感觉
失恋的感觉 2020-11-22 01:27

I have a generic list of objects in C#, and wish to clone the list. The items within the list are cloneable, but there doesn\'t seem to be an option to do list.Clone()

26条回答
  •  孤独总比滥情好
    2020-11-22 01:59

    public static object DeepClone(object obj) 
    {
        object objResult = null;
    
        using (var ms = new MemoryStream())
        {
            var bf = new BinaryFormatter();
            bf.Serialize(ms, obj);
    
            ms.Position = 0;
            objResult = bf.Deserialize(ms);
         }
    
         return objResult;
    }
    

    This is one way to do it with C# and .NET 2.0. Your object requires to be [Serializable()]. The goal is to lose all references and build new ones.

提交回复
热议问题