是否有LINQ方式从键/值对列表转到字典?

时间:2012-02-09 00:45:51

标签: c# linq

是否有“LINQ”方法可以做到这一点?

var array = new string[] { "BASE TABLE", "Table", "VIEW", "View" };
var list = array.ToList();
var dictionary = new Dictionary<string, string>();
for (int i = 0; i < list.Count; i += 2)
{
    dictionary[list[i]] = list[i + 1];
}

2 个答案:

答案 0 :(得分:17)

var result = Enumerable.Range(0, array.Length / 2)
                       .ToDictionary(i => array[i * 2], i => array[i * 2 + 1]);

答案 1 :(得分:5)

正如dtb指出的那样,恰当命名的“ToDictionary”方法可能正是您所寻求的。

如果您希望字典在创建后永不更改,和/或如果您打算将多个值与给定键关联,则使用恰当命名的“ToLookup”方法。< / p>