Como clonar uma lista (List<T>) em C#: guia completo para cópia
Olá a todos! Sou novo em C# e encontrei um problema ao trabalhar com listas. Preciso criar uma cópia independente da lista para que as alterações em uma cópia não afetem a outra.
Aqui está meu código:
```csharp
List originalList = new List { "apple", "banana", "cherry" };
List clonedList = originalList; // Atribuição simples
// Modificando o clone
clonedList.Add("date");
Console.WriteLine("Original: " + string.Join(", ", originalList)); // Exibe: apple, banana, cherry, date
Console.WriteLine("Cloned: " + string.Join(", ", clonedList)); // Exibe: apple, banana, cherry, date
```
Como você pode ver, com a atribuição simples, `originalList` e `clonedList` referenciam o mesmo objeto na memória. Alterar uma lista automaticamente altera a outra.
Tentei o método `ToList()`, mas ele também não ajuda para listas de tipos de referência:
```csharp
public class Person
{
public string Name { get; set; }
}
List people = new List
{
new Person {