我试图找出是否可以在 lambda 表达式函数中使用两个输入参数来获得可以放入数组中的多个结果,而不是使用如下所示的 for 循环。
int N = 10;
int[] numbs = new int[N] { 3, 5, 6, 7, 8, 11, 15, 17, 28, 55 };
int[] results = new int[N-1];
for (int i=0; i < N-1; i++)
results[i] = numbs[i+1] - numbs[i];
foreach (int i in results)
Console.WriteLine(i);
block 引用>output 2,1,1,1,3,4,2,11,17
类似这样的事情:
results = numbs.Select( (x,y) => y-x );
最佳答案
您可以使用 Zip
将数组与其自身对齐,移动一个索引:
results = numbs.Zip(numbs.Skip(1), (n1, n2) => n2 - n1)
.ToArray();
关于c# - 具有 2 个参数和多个结果输出的 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38412708/