Есть ли альтернатива словаря в .NET? - PullRequest
4 голосов
/ 02 сентября 2011

У меня есть требование использовать словарь в проекте, но, поскольку мы знаем, что они доступны только с помощью ключей и не используют индексы, и я хочу получить доступ к элементам в словаре, используя индексы. Поэтому я покопался в Интернете и узнал об OrderedDictionary, поскольку они доступны с использованием как индексов, так и ключей, но у них есть некоторая проблема производительности , и поскольку я читаю / пишу словарь каждую минуту дня, так что это не так. хорошая идея использовать OrderedDictionary.

Итак, наконец, мой вопрос здесь заключается в том, есть ли какая-либо альтернатива, которая дает мне функциональность словаря, и я также могу получить к нему доступ с помощью индексов и не вызывает проблем с производительностью.

Ответы [ 3 ]

6 голосов
/ 02 сентября 2011

SortedList<TKey, TValue> имеет свойство Values, то есть IList<TValue>.Это достаточно?Это быстро только для небольших «наборов» элементов.Разница с SortedDictionary здесь http://msdn.microsoft.com/en-us/library/5z658b67(v=vs.80).aspx

Могу ли я спросить вас, почему вы хотите получить к нему доступ "по индексу"?Вы все еще можете перечислить его с foreach, знаете ли?

3 голосов
/ 02 сентября 2011

в ответ на ваш комментарий о том, что вы ожидаете только сотню обновлений в минуту, это очень мало работы - практически ничего. Вы все еще можете использовать OrderedDictionary, производительность не будет проблемой для вас.

3 голосов
/ 02 сентября 2011

Попробуйте SortedDictionary http://msdn.microsoft.com/en-us/library/f7fta44c.aspx

...