Задать вопрос
@Ramirag
Я человек.

C# Какое мне лучше выбрать хранилище для массива данных?

Здравствуйте. У меня имеется несколько типов данных такого вот вида.
public class SomeClass1
    {
        public Int32 SomeKeyValue;
        public Int32 SomeOtherValue1;
        public String SomeOtherValue2;
    }
    public class SomeClass2
    {
        public SomeEnum SomeKeyValue;
        public Int32 SomeOtherValue1;
        public String SomeOtherValue2;
    }

Ранее в процессе разработки я использовал обычный массив с LINQ поиском по уникальному ключевому полю. Изначально был выбран массив, тк количество элементов фиксировано и не изменяется в процессе работы программы.
Но далее мне потребовалось ускорить работу и решено было просмотреть другие типы хранилищ.
Мне очень подошел Dictionary, у которого в качестве ключа используется ключевое поля из класса. Но в этом случае мне требуется убрать ключевое поле из класса и хранить его в ключе словаря. Можно конечно не удалять, но оно будет дублироваться.
Вот и сам вопрос, если какое либо хранилище, которое будет хранить набор объектов, а одно из полей объекта использовать в качестве ключа, по которому можно искать?
  • Вопрос задан
  • 976 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
hePPer
@hePPer
Мне очень подошел Dictionary, у которого в качестве ключа используется ключевое поля из класса. Но в этом случае мне требуется убрать ключевое поле из класса и хранить его в ключе словаря. Можно конечно не удалять, но оно будет дублироваться.


Dictionary и используйте - думаю в вашем случае оптимальный вариант, и поиск по ключу очень быстрый.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
struggleendlessly
@struggleendlessly
.net Senior developer
кстати мы у себя сравнивали, switch работает в 10 аз быстрее словаря.....
а для ускорения, посмотрите на хеш-таблицы...
Ответ написан
Комментировать
ImmortalCAT
@ImmortalCAT
C# loving
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы