Copie uma lista em C#
 
Este tutorial apresentará métodos para copiar uma lista em C#.
Copie uma lista com Linq em C#
    
O Linq pode realizar consultas semelhantes a SQL em estruturas de dados em C#. Podemos usar o Linq com o método predefinido item.Clone(/) para criar uma cópia de uma lista. Veja o exemplo abaixo.
using System;
using System.Collections.Generic;
using System.Linq;
namespace copy_a_list {
  static class Extensions {
    public static List<T> Clone<T>(this List<T> listToClone)
        where T : ICloneable {
      return listToClone.Select(item => (T)item.Clone()).ToList();
    }
  }
  class Program {
    static void Main(string[] args) {
      List<string> slist = new List<string> { "ABC", "DEF", "GHI" };
      List<string> tlist = slist.Clone();
      foreach (var t in tlist) {
        Console.WriteLine(t);
      }
    }
  }
}
Resultado:
ABC DEF GHI
Criamos a função de extensão Clone() para ser usada com uma lista genérica. A função Clone() usa a função item.Clone() para fazer uma cópia separada de cada elemento dentro da lista e então retorna o resultado na forma de uma lista com a função ToList() em C#. Na função principal, inicializamos a lista de strings slist e a clonamos em outra lista de strings tlist. Podemos usar essa abordagem com lista de valores e lista de referências.
Copie uma lista com o construtor de lista em C#
Outro método mais simples de criar uma cópia de uma lista é usar o construtor de lista em C#. Podemos passar a lista anterior para o construtor da nova lista para criar uma cópia da lista anterior. O exemplo de código a seguir nos mostra como criar uma cópia separada de uma lista com o construtor de lista em C#.
using System;
using System.Collections.Generic;
using System.Linq;
namespace copy_a_list {
  class Program {
    static void method2() {}
    static void Main(string[] args) {
      List<string> slist = new List<string> { "ABC", "DEF", "GHI" };
      List<string> tlist = new List<string>(slist);
      foreach (var t in tlist) {
        Console.WriteLine(t);
      }
    }
  }
}
Resultado:
ABC DEF GHI
Este código é muito mais simples e fácil de entender do que a abordagem anterior. No código acima, criamos uma cópia separada da lista slist na tlist passando slist como o argumento do construtor de tlist. Só podemos usar essa abordagem com a lista de valores.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn