Вы можете получить коллекцию значений с помощью свойства Dictionary<>.Values
. В следующем примере вы не перебираете значения, а framework делает это за вас.
Dictionary<int, Item> items = new Dictionary<int, Item>();
List<Item> values = new List<Item>(items.Values);
values.Sort();
Вы также можете хранить другой список только для значений и добавлять свои элементы как в словарь, так и в список.