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