Я получаю элементы в словаре FIFO способом с foreach в C #? - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть словарь C #.

Dictionary<string, string> map = new Dictionary<string, string>();
map["x"] = "1";
map["z"] = "2";
map["y"] = "0";

Когда я получаю ключи с foreach, я получаю значение «x» - «z» - «y». И это последовательность, которую я даю на карту.

foreach (var pair in map)
{
    Console.WriteLine(pair.Key);
}       

Это гарантированное поведение? Я имею в виду, что с помощью словаря я всегда получаю элементы в формате FIFO с помощью foreach?

Ответы [ 2 ]

5 голосов
/ 28 февраля 2012

Нет, словарь не гарантирует, что его содержимое упорядочено так, как оно было вставлено.

Чтобы процитировать рекламное объявление от MSDN:

'В целях перечисления каждый элемент в словаре обрабатывается как структура KeyValuePair (Of TKey, TValue), представляющая значение и его ключ. Порядок возврата товаров не определен. '

0 голосов
/ 28 февраля 2012

Как правило, они упорядочены по ключу - x, y, z в вашем случае.

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