Отдельная копия коллекции в C#
Копия списка - новый List<T>
с теми же элементами. Добавление или удаление элементов
в одном списке тогда не затрагивает другой.
Если элементы являются изменяемыми объектами, ссылки
на них все еще остаются общими. Для глубокой копии
такие объекты нужно копировать отдельно:
List<string> source = new List<string>() { "ann" };
Team team1 = new Team(source);
Team team2 = new Team(team1.Members);
team2.Members.Add("bob");
Console.WriteLine(team1.Members.Count);
Console.WriteLine(team2.Members.Count);
class Team
{
public List<string> Members;
public Team(List<string> members)
{
Members = new List<string>(members);
}
}
Сделайте класс Bundle с набором строк. Получите второй экземпляр с тем же содержимым, добавьте строку только во второй и убедитесь, что число элементов у первого не изменилось.