У меня есть два объекта списка, и я пытаюсь скопировать значение одного списка в другой. Идеальная кодировка была бы такой:
List<List<int>> x = new List<List<int>>();
List<int> temp = new List<int>();
List<List<int>> y = new List<List<int>>();
int myCount;
foreach (List<int> t in y)
{
myCount = t.Count;
for(int w = 0; w <= t.Count; w++)
{
temp = new List<int>();
temp = t;
temp.Insert(w,n);
x.Add(temp);
}
}Ясно, что temp = t; не будет копией значения, но какой самый простой способ сделать это присвоение копией значения вместо копии ссылки.
Я пробовал t.ToList (), но intellisense этого не видит (и он не указан в определении списка на странице справки MSN). Я пробовал «MemberwiseClone», но он также не отображается в intellisense. В такие времена я скучаю по указателям ... :)





public static T DeepClone<T>(T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
ms.Position = 0;
return (T)formatter.Deserialize(ms);
}
}
temp = DeepClone(t);
Вы правы - нашел другие темы, которые меня не подводили. Это помогло. Спасибо.