如何使用 LINQ 将数组转换为字典

Sla*_*jic 4 c# linq arrays dictionary

我有一个字符串数组,我想Dictionary使用Linq将其转换为 a 。我想和一个元件偶数索引(包括零)是与和元件奇数索引在字典中。我使用以下方法创建了一个字典for loop

string[] arr = new string[4];
arr[0] = "John";
arr[1] = "A";
arr[2] = "Luke";
arr[3] = "B";

Dictionary<string, string> myDict = new Dictionary<string, string>();

for (int i = 0; i < arr.Length - 1; i += 2)
{
    myDict.Add(arr[i], arr[i + 1]);
}

//myDict -> { { "John", "A" },{"Luke","B"} }
Run Code Online (Sandbox Code Playgroud)

现在我很好奇如何用LINQ 做到这一点ToDictionary()

myDict = arr.ToDictionary();
Run Code Online (Sandbox Code Playgroud)

Dmi*_*nko 5

你可以这样写(以防万一 Linq 的我们可以Enumerable.Range作为循环利用):

string[] arr = new string[] {
  "John", "A",
  "Luke", "B",
}  

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

Console.WriteLine(string.Join(Environment.NewLine, myDict));
Run Code Online (Sandbox Code Playgroud)

结果:

[John, A]
[Luke, B]
Run Code Online (Sandbox Code Playgroud)