将不同集合中的键和值添加到字典中

ike*_*kel 0 c# c#-4.0

我有两个带字符串值的数组和一个字典,我试图将array1中的值作为键添加,将array2中的值作为字典中的值添加.

在这种情况下,最佳做法是什么?我试过跟随

foreach(var i in array1)
{
    foreach(var t in array2)
    dictionary.add(i.value, t.value)
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

那你可以做(在.NET 4中):

var dictionary = array1.Zip(array2, (key, value) => new { key, value })
                       .ToDictionary(pair => pair.key, pair => pair.value);
Run Code Online (Sandbox Code Playgroud)

这基本上将两个数组拉在一起,因此最终会得到一对数组.然后调用ToDictionary扩展方法,从每对中提取键和值.

或者,你可以用老式的方式做到这一点:

var dictionary = new Dictionary<string, string>();
for (int i = 0; i < array1.Length; i++)
{
    dictionary[array1[i]] = array2[i]; // Or use Add
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都应该确保数组的长度相同.