Как заказать словарь на основе другого словаря?C # - PullRequest
0 голосов
/ 17 октября 2018

Итак, что я пытаюсь сделать - это заказать словарь (dict2), основанный на упорядочении другого словаря (dict1), основываясь на его Ключе;Два словаря имеют одинаковые значения, но не одинаковые ключи.Ниже приведен график для визуализации того, что я пытаюсь сделать.

введите описание изображения здесь

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...