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

Aar*_*ide 2 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];
}
Run Code Online (Sandbox Code Playgroud)

dtb*_*dtb 17

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


Eri*_*ert 5

正如dtb指出的那样,恰当命名的"ToDictionary"方法可能正是您所寻找的.

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