我有两个字符串列表; myFruits和myColors。
myFruits的格式如下:
["Apple", "Banana", "Guava", "Blueberry"] //key
myColors的格式如下:
["Red", "Yellow", "Green", "Blue"] //value
我希望能够使用Dictionary依次将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);
如何获得所需的输出?这只是一个示例,每次运行时我的列表中都可能有多个值,但始终等于否。不论数量是多少,两个列表上的项目数都是多少。任何帮助将不胜感激。
答案 0 :(得分:2)
这看起来更像是输出问题。请参见下面的代码来制作<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
答案 1 :(得分:0)
您是否有不使用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]);
}