通过迭代数组来创建KeyValuePair列表

Ham*_*m3d 1 .net c# linq

我有这样一个数组:

Foo[] objects;
Run Code Online (Sandbox Code Playgroud)

我想要一份KeyValuePair<Foo, float>来自的清单objects.
float一个元素的值是0.2f,它应该按元素递增.它表示第一个元素的浮点值为0.2,第三个元素的浮点值为0.6.

for循环完成此任务:

float value = 0.2f;
foreach(Foo f in objects)
{
   myList.Add(new KeyValuePair<Foo,float>(f, value));
   value += 0.2f
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道有没有办法用LINQ和lambda表达式做到这一点?

DLe*_*Leh 8

这是你在找什么?

var myList = objects
    .Select((f, index) =>  new KeyValuePair<Foo, float>(f, (index + 1) * 0.2f))
    .ToList();
Run Code Online (Sandbox Code Playgroud)