Оптимизация работы с коллекцией классов - 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; }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы