.NET 4.x Копирование обобщенных коллекци - C#
Формулировка задачи:
Как правильно копировать обобщенные коллекции ? Например:
В данном случае у коллекции "a" 0-ой элемент тоже будет -10. А как скопировать коллекцию так что бы изменение "b" не влияло на "а" ?
class SimpleClass { public int Number; public SimpleClass(int number) { Number = number; } } //************************* List<SimpleClass> a = new List<SimpleClass>(); for (int i = 0; i < 10; i++) a.Add(new SimpleClass(i)); List<SimpleClass> b = new List<SimpleClass>(a); b[0].Number = -10;
Решение задачи: «.NET 4.x Копирование обобщенных коллекци»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { List<Test> listA = new List<Test>(); listA.AddRange(Enumerable.Range(0, 10).Select(item => new Test(item)).ToArray()); List<Test> listB = new List<Test>(listA.Select(item => (Test)item.Clone())); Console.WriteLine(listA[0].Number); Console.WriteLine(listB[0].Number); listB[0].Number = 10; Console.WriteLine(listA[0].Number); Console.WriteLine(listB[0].Number); Console.ReadLine(); } } class Test :ICloneable { public int Number; public Test(int num) { Number = num; } public object Clone() { return new Test(this.Number); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д