在一行LINQ语句中使用增量键列出到字典

Mat*_*ero 7 c# linq dictionary list

我有这个清单:

var items = new List<string>() { "Hello", "I am a value", "Bye" };
Run Code Online (Sandbox Code Playgroud)

我希望它将它转换为具有以下结构的字典:

var dic = new Dictionary<int, string>()
{
     { 1, "Hello" },
     { 2, "I am a value" },
     { 3, "Bye" }
};
Run Code Online (Sandbox Code Playgroud)

如您所见,字典键只是增量值,但它们也应该反映列表中每个元素的位置.

我正在寻找单行 LINQ语句.像这样的东西:

var dic = items.ToDictionary(i => **Specify incremental key or get element index**, i => i);
Run Code Online (Sandbox Code Playgroud)

Yuv*_*kov 18

你可以通过使用重载Enumerable.Select传递元素的索引来做到这一点:

var dic = items.Select((val, index) => new { Index = index, Value = val})
               .ToDictionary(i => i.Index, i => i.Value);
Run Code Online (Sandbox Code Playgroud)

  • @KhanhTO但这是一个LINQ语句. (2认同)