Список клонирования <T>

Вы можете использовать приведенный dotnet ниже код, чтобы сделать полную .net-framework копию списка или любого другого .net объекта, поддерживающего .net сериализацию:

Также вы можете c-sharp использовать это для любой visual-c# версии .NET framework начиная c#.net с версии 2.0 и выше, и аналогичный c# метод может быть применен .net-framework (исключая использование универсальных dotnet шаблонов), а также использован dotnet в 1.1

public static class GenericCopier
{
    public static T DeepCopy(object objectToCopy)
    {
        using (MemoryStream memoryStream = new MemoryStream())
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            binaryFormatter.Serialize(memoryStream, objectToCopy);
            memoryStream.Seek(0, SeekOrigin.Begin);
            return (T) binaryFormatter.Deserialize(memoryStream);
        }
    }
}

Вы можете вызвать это .net-framework с помощью

List deepCopiedList = GenericCopier>.DeepCopy(originalList);

Полный код для проверки visual-c# работы:

static void Main(string[] args)
{
    List originalList = new List(5);
    Random random = new Random();
    for(int i = 0; i < 5; i++)
    {
        originalList.Add(random.Next(1, 100));
        Console.WriteLine("List[{0}] = {1}", i, originalList[i]);
    }
    List deepCopiedList = GenericCopier>.DeepCopy(originalList);
    for (int i = 0; i < 5; i++)
        Console.WriteLine("deepCopiedList[{0}] value is {1}", i, deepCopiedList[i]);
}

c#

.net

2022-10-20T19:54:32+00:00