在学习教程时发现这一点,无法理解它,因为源代码没有对它正在做什么做出评论。我向它传递了许多不同的byte []值,看看我是否可以解决它,我不能。大多数Lambda教程只显示一个变量类型 - 而不是2。
using System.Linq;
using System.Numerics;
private string DoLamdaExpression(byte[] data)
{
var intData = data.Aggregate<byte, BigInteger>(0, (current, t) => current * 256 + t);
string result = intData.ToString();
return result;
}
current和t之前没有任何定义,所以说实话,我不知道&#34; byte [] data&#34;正在使用,而不是调用.Aggregate
函数。
另外data.Aggregate =累积功能...... 我的直觉是&#34;字节&#34;正在扮演当前和&#34; BigInteger&#34;扮演t的角色。
public static TAccumulate Aggregate<TSource, TAccumulate>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func);
答案 0 :(得分:6)
lambda表达式定义了一个匿名Func
,它聚合data
字节数组,其中处理数组的每个元素。 current
表示到目前为止的结果,t
是正在处理的元素。在此示例中,函数迭代数组,并为每个元素将当前结果乘以256并添加正在处理的元素。