How do I clone a generic list in C#?

前端 未结 26 2826
失恋的感觉
失恋的感觉 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 02:11

    There is a simple way to clone objects in C# using a JSON serializer and deserializer.

    You can create an extension class:

    using Newtonsoft.Json;
    
    static class typeExtensions
    {
        [Extension()]
        public static T jsonCloneObject(T source)
        {
        string json = JsonConvert.SerializeObject(source);
        return JsonConvert.DeserializeObject(json);
        }
    }
    

    To clone and object:

    obj clonedObj = originalObj.jsonCloneObject;
    

提交回复
热议问题