所以我想做的是根据另一个字典的(dict1)根据其键对字典(dict2)进行排序;这两个字典具有相同的值,但没有相同的键。 下面有一个图表可以直观地显示我要做什么。
答案 0 :(得分:1)
您可以使用Linq通过一个字典在另一个字典中的值的索引来对其进行排序。可能有一种较短的方法,但这应该可行:
var dict1 = new Dictionary<int, string>
{
{12, "hello"},
{67, "green"},
{29, "blue"},
{15, "red"},
{40, "house"}
};
var dict2 = new Dictionary<string, string>
{
{"tree", "green"},
{"person", "hello"},
{"car", "red"},
{"floor", "red"},
{"dirt", "green"},
};
var ordered = dict2
.OrderBy(d2Item => dict1.FirstOrDefault(d1Item => d1Item.Value == d2Item.Value).Key)
.ToDictionary(item => item.Key, item => item.Value);