АБ
Александр Бисяев

Операции с List c#:

List a = new List();
a.Add(1);
a.Add(2);
a.Add(3);
List b = a;
a.Clear();

Очищается и a и b
По видимому при присвоении тупа в b присваиваются указатели на элементы.
А как создать независимый от a объект?

.Net тем и туп что работа с памятью выполняется только в unsafe { } но нашеk такое решение
List a = new List();
a.add(1);
List b = new List();
b = a.Clone();

и если работать с классом, то

class a : IClonable
{
public object Clone()
{
a b = new a();
b.xxx = this.xxx;
return b;
}
}

[ra], спасибо, я этот способ видел в конструкторах и msdn, трудность была в реализации класса, состоящего из List

Толян
Толян

using System;
using System.Collections.Generic;

namespace ConsoleApplication325478145789
{
class Program
{
static void Main(string[] args)
{
List a = new List();
a.Add(1);
a.Add(2);
a.Add(3);
foreach (int x in a) Console.Write(x + " ");
List b = new List();

a.ForEach(delegate(int n) { b.Add(n); });

a.Clear();
Console.WriteLine();
foreach (int x in b) Console.Write(x + " ");
Console.ReadKey();
}
}
}

ВО
Виктория Опря

Выделить память наверное как для a.

Похожие вопросы
Проясните, что означает эта строка кода (синтаксически) (C#): public class LazyInitialization<t> where T : new()
Как поставить приоритет на операции в C#
перечислите поразрядные логические операции в языке C#! Опишите каждую из операции с указанием результата
Программа калькулятор C# проблема с операциями +-*/
Что такое windows White list?
как создать параметр на свой программ например -t -c -a
c++ битовые операции
c#, list<string>, вывод в listbox
visual studio 2010 c++ графический интерфейс переопределение операций
Какая разница между List и ArrayList? Java