Как заказать ключи в словаре? - PullRequest
0 голосов
/ 20 мая 2018

У меня есть Dictionary<int?,List<string>>.Мне нужно вывести пары ключей и значения, отсортированные по ключам в порядке возрастания.Во-первых, я думаю использовать OrderedDictionary, но он сохраняет ключи и значения в типе объекта.Может быть, как-то это можно сделать с помощью методов расширения?

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

У вас есть два варианта:

  1. Использовать SortedList<TKey,TValue> / SortedDictionary<TKey,TValue>:

    var sortedData = new SortedList<int?, List<string>>(currentDictionary);
    
  2. Использовать Linq's OrderBy:

    var sortedData = currentDictionary.OrderBy(x => x.Key);
    

Вы можете использовать любой из этих параметров со следующей печатью:

foreach (var entry in sortedData)
{
    Console.WriteLine("Key: {0}, Values: ", entry.Key);

    foreach (var value in entry.Value)
    {
        Console.WriteLine(value);
    }
}
0 голосов
/ 20 мая 2018
Dictionary<int?, List<string>> yourDictionary = GetTheDictionary();
var sortedKeys = yourDictionary.Select(kvp => kvp.Key).OrderBy(k => k);

Это даст вам список всех ваших ключей в порядке возрастания

Если вы хотите, чтобы ваш словарь был таким же.Т.е. еще как Key Value Pairs.Просто приказано ключом, тогда вам нужно сделать.

yourDictionary.OrderBy(kvp => kvp.Key);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...