c# - 具有 2 个参数和多个结果输出的 lambda 表达式

标签 c# methods lambda extension-methods

我试图找出是否可以在 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);

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/

相关文章:

c# - 通过配置强制在 wcf 客户端 c# 中使用 tls 1.0

java - 如何通过反射确定方法是否返回 'void'

unit-testing - PHPunit 调用魔术方法

java - 要创建哪些类方法?

kotlin - 如何在Kotlin中从自身内部访问功能?

java - 尽早终止 Iterable.forEach

c# - 当应用程序在 WP 8.1 商店应用程序中恢复时,应用程序恢复事件不会触发

c# - 使用 Newtonsoft 简化对象的反序列化

c# - mvc 验证日期/时间至少在未来 1 分钟

c++ - 语法繁重的多个 lambda 包装器的替代方案——如何避免样板代码?