LINQ查询操作--聚合

前端之家收集整理的这篇文章主要介绍了LINQ查询操作--聚合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们一般说的 LINQ 是指 LINQ 表达式,详见 LINQ 步步学 ,但除了表达式以外,LINQ 查询操作更方便,凡是实现了接口 IEnumerable<T> 或 IQueryable<T> 的,都可以用 LINQ 查询操作。

方法一览

int[] arr = { 1,2,3,7,8,9,6,5,4 };
Response.Write(arr.Count() + "<br>"); // 元素数量,这里为 9
Response.Write(arr.Sum() + "<br>"); // 元素总和,这里为 45
Response.Write(arr.Max() + "<br>"); // 元素最大值,这里为 9
Response.Write(arr.Min() + "<br>"); // 元素最小值,这里为 1
Response.Write(arr.Average() + "<br>"); // 元素平均值,这里为 5
Response.Write(arr.LongCount() + "<br>"); // 元素数量(以 System.Int64 返回),这里为 9
Response.Write(arr.Aggregate((s,m) =>((s < 3) ? 0 : s) + ((m % 3 == 0) ? m : 0)) + "<br>"); // 自定义聚合计算,这里为 18

Aggregate

Aggregate 是自定义聚合计算,功能强大。

上面的 Lambda 表达式 (s,m) =>((s < 3) ? 0 : s) + ((m % 3 == 0) ? m : 0)。

表示对每个元素执行这个函数:执行第一个元素时,把第一个元素的值传给 s 和 m;执行后面的元素时,把上一个元素执行时的结果传给 s,把当前元素值传给 m。

猜你在找的设计模式相关文章