码迷,mamicode.com
首页 > 其他好文 > 详细

LINQ系列:Linq to Object聚合操作符

时间:2014-10-22 12:20:37      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   使用   for   strong   sp   

  聚合函数在一系列的值上执行特定的运算,并返回单个值,如在给定元素的值上执行求和或计数运算。
  LINQ共有7种聚合操作符:Aggregate、Average、Count、LongCount、Max、Min和Sum。

1. Aggregate

  Aggregate操作符从某一特定序列或集合中收集值。当聚合完成时,它将序列中返回的值进行累积并返回结果。

1>. 原型定义

public static TSource Aggregate<TSource>(this IEnumerable<TSource> source, Func<TSource, TSource, TSource> func);

2>. 示例

var expr = context.Categories
    .Select(c => c.CategoryName)
    .ToArray()
    .Aggregate((current, next) => String.Format("{0}-{1}", current, next));

Console.WriteLine(expr);

2. Average

  Average操作符计算一个数值序列的平均值。

1>.原型定义

public static double Average(this IEnumerable<double> source);
public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);

2>.示例

int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };
Console.WriteLine(fibonacci.Average());
var expr = context.Products
    .Average(p => p.UnitPrice);

Console.WriteLine(expr);
var expr = context.Products
    .Select(p=>p.UnitPrice)
    .Average();
var expr = from p in context.Products
           select p;

expr.Average(p => p.UnitPrice)
var expr = from p in context.Products
           select p.UnitPrice;
expr.Average();

3. Count

  Count操作符计算一个特定集合中元素的个数。

1>. 原型定义

public static int Count<TSource>(this IQueryable<TSource> source);
public static int Count<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);

2>. 示例

int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };
Console.WriteLine(fibonacci.Count());
var expr = context.Products.Count();
var expr = context.Products
    .Where(p => p.UnitPrice > 10m)
    .Count();
var expr = context.Products
    .Count(p => p.UnitPrice > 10m);
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };
var expr = from f in fibonacci
            where f > 5
            select f;
expr.Count();

4. LongCount

  LongCount操作符会返回一个Int64类型的值,用来计算元素数大于Int32.MaxValue的集合的元素数。LongCount的使用方法与Count相同。

1>. 原型定义

public static long LongCount<TSource>(this IQueryable<TSource> source);
public static long LongCount<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);

2>. 示例

var expr = context.Products
    .LongCount(p => p.UnitPrice > 10m);

 

LINQ系列:Linq to Object聚合操作符

标签:style   blog   color   io   ar   使用   for   strong   sp   

原文地址:http://www.cnblogs.com/libingql/p/4042570.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!