VB.NET Dictionary.Add метод index - PullRequest
       0

VB.NET Dictionary.Add метод index

0 голосов
/ 10 марта 2011

Когда я вызываю mydictionary.Add(key, object), могу ли я гарантировать, что объект добавляется в конец словаря в том смысле, что mydictionary.ElementAt(mydictionary.Count - 1) возвращает этот объект? Я спрашиваю, потому что я привык к Java, где HashMap не имеет никакого порядка вообще.

Я надеюсь использовать порядок, заданный ElementAt, как способ узнать порядок, в котором объекты были добавлены в словарь, без использования отдельной структуры данных.

Обновление: похоже, ElementAt не будет никакого смысла. Это лучший способ сделать это, чтобы использовать отдельную структуру данных для хранения порядка, который мне нужен?

Спасибо

1 Ответ

2 голосов
/ 10 марта 2011

Нет словаря в заказе. Метод ElementAt - это метод расширения linq, который перебирает словарь с помощью IEnumerable и подсчитывает количество вещей, не имеет отношения к порядку, который был добавлен.

Существует SortedDictionary, который будет сортировать вещи по ключу, но не будет держать их в том порядке, в котором они были добавлены.

Если порядок действительно важен, у вас всегда могут быть две структуры данных: список, в который вы добавляете объект, и словарь, в котором хранится ключ для сопоставления индекса списка. Или поместите поле внутри вашего объекта, которое устанавливается из счетчика, когда вы добавляете его в словарь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...