Как я могу использовать словарь для сопоставления ключей, расположенных в одном списке строк, со значениями, расположенными в другом списке строк, используя C #? - PullRequest
1 голос
/ 11 апреля 2019

У меня есть два списка строк;myFruits и myColors.

myFruits имеет следующий формат:

 ["Apple", "Banana", "Guava", "Blueberry"] //key

myColors имеет следующий формат:

["Red", "Yellow", "Green", "Blue"]  //value

Я хочу иметь возможность отобразитьключи myFruits к значениям myColors поочередно, используя словарь и получая что-то вроде следующего в моем выводе.

Apple:Red
Banana:Yellow
Guava:Green
Blueberry:Blue

Я пытался использовать zip в своем коде, но что-то, что я делаю, не правильно, поскольку оно не печатаетправильно.

var dic = myFruits.Zip(myColors, (k, v) => new { k, v }).ToDictionary(x => x.k, x => x.v); 

Как мне достичь желаемого результата?Это просто пример, я могу иметь несколько значений в моем списке при каждом запуске, но всегда будет равным нет.элементов в обоих списках, независимо от того, какое число.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Это больше похоже на проблему вывода.См. Приведенный ниже код для создания строки <fruit>:<color>.

var myFruits = new []{"Apple", "Banana", "Guava", "Blueberry"};
var myColors = new []{"Red", "Yellow", "Green", "Blue"};

var dic = myFruits.Zip(myColors, (k, v) => new { k, v }).ToDictionary(x => x.k, x => x.v);

foreach(var kvp in dic)
{
    Console.WriteLine($"{kvp.Key}:{kvp.Value}");
}

Выходы:

Apple:Red
Banana:Yellow
Guava:Green
Blueberry:Blue
0 голосов
/ 11 апреля 2019

У вас есть проблемы с неиспользованием расширения LINQ?

var myFruits = new [] {"Apple", "Banana"};
var myColors = new [] {"Red", "Yellow"};
var mapping = new Dictionary<string, string>();

for(var i = 0; i < myFruits.Count(); i++)
{
  mapping.Add(myFruits[i], myColors[i]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...