Словари не подходят в качестве источника данных для списков. Они оптимизированы для получения значений для заданных ключей. Тем не менее, вы можете извлечь ключи, значения и пары ключ / значение из словаря следующим образом:
var keys = dict.Keys;
var values = dict.Values;
var keyValuePairs = dict.OrderBy(x => x.Value);
foreach (KeyValuePair<string, int> item in keyValuePairs) {
Console.WriteLine("Key = {0}, Value = {1}", item.Key, item.Value);
}