Когда вы перечисляете коллекцию, она сортируется по ключам (даже если вы перечисляете, скажем, коллекцию Values
). Внутри коллекция реализована в виде бинарного дерева поиска (согласно документации). И вставка, и поиск значений - O (log n) (что означает, что они довольно эффективны).
Из MSDN :
Словарь поддерживается в отсортированный порядок с использованием внутреннего дерева. Каждый новый элемент располагается в правильная позиция сортировки, и дерево скорректирован для поддержания порядка сортировки всякий раз, когда элемент удаляется. Пока перечисляя, порядок сортировки поддерживается.
Да, это именно то, что это означает.
Правка: часть, которая говорит: «Означает ли это, что вы можете быть уверены, что она будет отсортирована, когда вы перечисляете ее в foreach?»