Гайд C# .NET коллекция по имени очеству)

Я лучше тебя
Участник
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
383
Реакции[?]
448
Поинты[?]
1K
И снова я. Этот самый зануда.
Сливаю обертку для Dictionary которую юзал для обращения к чему угодно по имени.​

Ширина применения:
Представим что вы кексы. И у вас есть екстернал читуля, трейнер по сути, для кс го на пример. Как известно каждому кексику, в кс дохуя классов и смещений, вопрос только в том, как удобней их хранить? Огромной кучей? или в одном маленьком контейнере, хранилище, из которого, к оффсету можно было бы обратится, по ранее выданному ему имени?))))

Суть дискурса:
Код:
using System.Collections.Generic;

public class Colider<T, V>
{
    Dictionary<T, V> container;
    public Colider()
    {
        this.container = new Dictionary<T, V>();
    }

    public void Add(T item, V value)
    {
        lock (this.container)
        {
            this.container.Add(item, value);
        }
    }

    public void Remove(T item)
    {
        lock (this.container)
        {
            if (this.container.ContainsKey(item))
            {
                this.container.Remove(item);
            }
        }
    }


    public V this[T item]
    {
        get
        {
            return this.container[item];
        }
        set
        {
           this.container[item] = value;
        }
    }
 
    public V Find(T item)
    {
        if (this.container.ContainsKey(item))
        {
            return this.container[item];
        }
        return default(V);
    }

    public void Edit(T item, V newValue)
    {
        lock (this.container)
        {
            V value = this.Find(item);

            if (!value.Equals(default(V)))
            {
                this.container[item] = newValue;
            }
        }
    }
    public void Clear()
    {
        lock (this.container)
        {
            this.container.Clear();
        }
    }

    public int Count
    {
        get { return this.container.Count; }
    }
    ~Colider()
    {

    }
}
Вроде ничего такого. Мозговитый бы спросил, зачем, если можно на прямую юзать? За тем чтобы не тянуть зависимость System.Collections.Generic во всех файлах, где оно будет юзатся.
Код:
//Где нам удобней, бацаем наш класс, во внешнем статическом классе на пример. кому как удобно.
            Colider<string, int> Offsets = new Colider<string, int>();
            //Добавляем оффсеты.
            Offsets.Add("someOffset1", 0x4545f);
            Offsets.Add("someOffset2", 0x4345f);
            Offsets.Add("someOffset3", 0x4145f);
            Offsets.Add("someOffset4", 0x46a);
            //теперь когда добавили оффсеты в контейнер, можем обращаться к ним по имени.
            int offset1 = Offsets["someOffset1"]; //выдаст 0x4545f
И так с чем угодно.
 
Последнее редактирование:
Сверху Снизу