我尝试使用buble sort对Dictionary进行排序。我遇到的问题是我想保留钥匙。例如:
我的字典看起来像这样:
{[0,5],[1,2],[2,3],[3,1],[4,9]}
使用冒泡排序后,我应该有这样的字典:
{[3,1],[1,2],[2,3],[0,5],[4,9]}
这甚至可能吗?
答案 0 :(得分:1)
字典没有顺序概念(参见The order of elements in Dictionary),因此无法自行排序。你给的两本词典是等价的。
您可以改为创建键值对列表并实现BubbleSort以仅比较每对中的第二个元素。像这样,但使用Bubblesort而不是OrderBy:
var sample = new Dictionary<int, int>
{
{0,5},
{1,2},
{2,3},
{3,1},
{4,9}
};
var keyValuePairs = sample.Select(p => new Tuple<int, int>(p.Key, p.Value)).ToList();
var sortedKeyValuePairs = keyValuePairs.OrderBy(t => t.Item2);