我需要在Linq中从stable = super.nvidiaPackages.stable_390;
调用函数,并且需要从ForEach
发送一个字符串参数和索引
ForEach
答案 0 :(得分:4)
您可以尝试这样的事情:
var responses = listString.Select((value, index) => Func(value, index)).ToList();
以上listString
中每个项目的调用都会调用您定义的方法。所有呼叫的结果都将存储在一个列表中,您可以使用相应的索引来访问它们。
答案 1 :(得分:2)
我是LINQ的忠实粉丝。真的。
但是在这种情况下,当您访问现有的List
时,我会选择老式的for循环。
for(var i = 0; i < listString.Count; i++)
Func(listString[i], i);
时间不再长,效率更高(这可能不是问题,但请记住这一点),并且可以完成工作。
答案 2 :(得分:1)
您可以引入一个变量,然后对其进行递增:
List<String> values = new List<String>();
int indexTracker = 0;
values.ForEach(x=> { Func(x, indexTracker++); });
或者您可以编写以下扩展方法:
public static void ForEach<T>(this List<T> input, Action<T, int> action)
{
for(int i = 0; i < input.Count; i++)
{
action(input[i], i);
}
}
然后像
一样使用它values.ForEach((x,i)=> Func(x, i));