Сортировка Dictionary по Key в алфавитном порядке

222
21 декабря 2018, 22:50

Есть словарь Dictionary<string, int>,как можно отсортировать элементы словаря для вывода в консоль по Key в алфавитном порядке по возрастанию(от "a" до "z") без использования LINQ? Как сделать через OrderBy я знаю

Answer 1

Можно и через SortedDictionary<TKey, TValue>, как вы заметили в комментариях. Согласно MSDN этот класс:

Представляет коллекцию пар «ключ-значение», упорядоченных по ключу.

Таким образом, можно сделать так:

var dict = new Dictionary<string, int>() ...; // Ваш словарь
var sortedDict = new SortedDictionary<string, int>(dict);
foreach (var kvp in sortedDict)
    Console.WriteLine("Key: " + kvp.Key + "; Value: " + kvp.Value);
// Или так:
//foreach (var key in sortedDict.Keys)
//    Console.WriteLine("Key: " + key + "; Value: " + sortedDict[key]);

Если на входе:

["a"] = 10,
["z"] = 20,
["c"] = 30,
["m"] = 40,
["q"] = 50

Получаем вывод:

Key: a; Value: 10
Key: c; Value: 30
Key: m; Value: 40
Key: q; Value: 50
Key: z; Value: 20
READ ALSO
Unity - Перемещение UI объектов мышкой

Unity - Перемещение UI объектов мышкой

Как можно реализовать перемещение объектов UI мышкой? Например в инвентаре есть 2 слота, нужно из первого переместить объект во второй слот

314
Объединение пути для .NET 2.0

Объединение пути для .NET 2.0

Каким образом можно правильно описать метод для объединения пути к файлу?

254
C# WPF Prism popup окно

C# WPF Prism popup окно

Как открыть окно в C# WPF Prism вначале работы без shell? нужно окно авторизации, и если все нормально shell

214
Нюансы в работе с DOM

Нюансы в работе с DOM

Вот участок HTML кода

199