我有Dictionary<int?,List<string>>
。我需要输出按键和按升序排序的值对。首先,我认为使用OrderedDictionary但它在对象类型中保存了键和值。也许某种程度上它可以通过扩展方法来完成?
答案 0 :(得分:2)
这里有两个选项:
使用SortedList<TKey,TValue>
/ SortedDictionary<TKey,TValue>
:
var sortedData = new SortedList<int?, List<string>>(currentDictionary);
使用Linq的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);
}
}
答案 1 :(得分:1)
Dictionary<int?, List<string>> yourDictionary = GetTheDictionary();
var sortedKeys = yourDictionary.Select(kvp => kvp.Key).OrderBy(k => k);
这将按升序为您提供所有按键的列表
如果你想要你的字典相同。即作为关键价值对。只需按键排序即可。
yourDictionary.OrderBy(kvp => kvp.Key);