Оптимизация работы с коллекцией классов - C#
Формулировка задачи:
Доброго всем дня!
Имеется коллекция классов, в каждом классе около 20 переменных, коллекция довольно большая(>50000), так вот что будет оптимальнее по ресурсам и по времени, перезапись всего объекта или же изменение только откорректированных пременных класса?
Решение задачи: «Оптимизация работы с коллекцией классов»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Diagnostics; internal class Program { private static void Main(string[] args) { const int VALUE1 = 9999, VALUE2 = 8888, VALUE3 = 7777; const long VALUE4 = 234324, VALUE5 = 2342352345, VALUE6 = 45345345; List<A> collection1 = new List<A>(), collection2 = new List<A>(), collection3 = new List<A>(); for (int i = 0; i < 50000; i++) { Random r = new Random(Guid.NewGuid().GetHashCode()); A item = new A(); item.Value1 = r.Next(9999); item.Value2 = r.Next(8888); item.Value3 = r.Next(7777); collection1.Add(item); collection2.Add(item); collection3.Add(item); } Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < collection1.Count; i++) { A extracted = collection1[i]; extracted.Value1 = VALUE1; extracted.Value2 = VALUE2; extracted.Value3 = VALUE3; extracted.Value4 = VALUE4; extracted.Value5 = VALUE5; extracted.Value6 = VALUE6; collection1[i] = extracted; } sw.Stop(); Console.WriteLine("Перезапись объектов списка: " + sw.Elapsed.TotalMilliseconds + "ms"); sw.Reset(); sw.Start(); for (int i = 0; i < collection2.Count; i++) { collection2[i].Value1 = VALUE1; collection2[i].Value2 = VALUE2; collection2[i].Value3 = VALUE3; collection2[i].Value4 = VALUE4; collection2[i].Value5 = VALUE5; collection2[i].Value6 = VALUE6; } sw.Stop(); Console.WriteLine("Изменение свойств объектов списка: " + sw.Elapsed.TotalMilliseconds + "ms"); Console.ReadKey(); } } internal class A { private int value1; public int Value1 { get { return value1; } set { value1 = value; } } private int value2; public int Value2 { get { return value2; } set { value2 = value; } } private int value3; public int Value3 { get { return value3; } set { value3 = value; } } private long value4; public long Value4 { get { return value4; } set { value4 = value; } } private long value5; public long Value5 { get { return value5; } set { value5 = value; } } private long value6; public long Value6 { get { return value6; } set { value6 = value; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д