using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wolfy.LinqAggregation
{
class Program
{
static void Main(string[] args)
{
//生成测试数据
List<Product> list = new List<Product>();
Random r = new Random();
for (int i = 0; i < 5; i++)
{
float iran = r.Next(1, 111);
Product pro = new Product() {
ID = i + 1,
Name = "宝马" + i.ToString(),
Price = iran * 1000,
ProductDate = DateTime.Now.AddDays(i) };
Product pro2 = new Product() {
ID = i + 1,
Name = "宝马" + i.ToString(),
Price = iran * 1000,
ProductDate = DateTime.Now.AddDays(i) };
list.Add(pro);
list.Add(pro2);
}
//求和,求所有的产品总价
var sumResult = from s in list
//根据id分组 将分组后的结果集存入p
group s by s.ID into p
//此时结果集已经是p,所以要从p中取数据。
select new {
key = p.Key,
sum = p.Sum(x => x.Price),
min = p.Min(x => x.Price),
max = p.Max(x => x.Price),
average = p.Average(x => x.Price),
count=p.Count() };
foreach (var item in sumResult)
{
Console.WriteLine("id:" + item.key);
Console.WriteLine("分组的单价总和:" + item.sum);
Console.WriteLine("分组的最小值:"+item.min);
Console.WriteLine("分组的最大值:" + item.max);
Console.WriteLine("分组的平均值:" + item.average);
Console.WriteLine("分组的中个数:" + item.count);
}
Console.Read();
}
}
/// <summary>
/// 产品类
/// </summary>
class Product
{
/// <summary>
/// 产品id
/// </summary>
public int ID { set; get; }
/// <summary>
/// 产品名称
/// </summary>
public string Name { set; get; }
/// <summary>
/// 产品单价
/// </summary>
public double Price { set; get; }
/// <summary>
/// 生产日期
/// </summary>
public DateTime ProductDate { set; get; }

}
}

C#Linq之求和,平均值,最大值,最小值的更多相关文章

  1. 使用Java Stream,提取集合中的某一列/按条件过滤集合/求和/最大值/最小值/平均值

    不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.ut ...

  2. C# 求链表 list 中 属性的 最大值 最小值

    获取链表List中对象属性最大值最小值(Max,Min)的方法: 1.创建一个类,类中有一个属性A /// <summary> /// 用于测试属性的类 /// </summary& ...

  3. js求最大值最小值

    比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,代码如下: <html> <head> <meta charset=&qu ...

  4. Tunnel Warfare (区间合并|最大值最小值巧妙方法)

    Tunnel Warfare http://acm.hdu.edu.cn/showproblem.php?pid=1540 Time Limit: 4000/2000 MS (Java/Others) ...

  5. java8 stream取出 最大值/最小值

    注:转载请注明出处!!! 这里直接用取出多个对象中某个值 最大/最小 来进行举例 直接看代码 /** * 时间测试类 */ class TimeTest { private Date time; pu ...

  6. html标签内部简单加js 一维数组求最大值 最小值两个值位置和数字金字塔图形

     html标签内部,简单加js <a href=""></a><!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  7. C++数组或vector求最大值最小值

    可以用max_element()及min_element()函数,二者返回的都是迭代器或指针. 头文件:#include<algorithm> 1.求数组的最大值或最小值 1)vector ...

  8. php三目运算计算三个数最大值最小值

    文章地址:https://www.cnblogs.com/sandraryan/ $x = 10; $y = 45; $z = 3; //求出三个数字中最大值最小值 //先比较x y,如果x> ...

  9. Linq之求和,平均值,最大值,最小值

    写在前面 最近一直在弄统计的内容,和统计相关的操作,就需要用到了,而有些在数据库中操作起来非常不方便,没办法就用c#中的linq来实现了. 代码 一个例子 using System; using Sy ...

随机推荐

  1. TCP拥塞控制算法

    转自浅谈TCP拥塞控制算法 本篇文章介绍了几种经典的TCP拥塞控制算法,包括算法原理及各自适用场景. 回顾上篇文章:浅谈 redis 延迟 前言 TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的 ...

  2. centos6安装sshpass

    跳转机需要装这个 #!/bin/bash yum -y install gcc-c++ openssh-clients curl -o sshpass.tar.gz http://sourceforg ...

  3. Ubuntu16.04.3安装并配置samba方法

    目的:单个Linux用户可以在windows电脑上通过映射网络驱动器的方式来访问自己的工作目录. 方法如下: 1.安装smb服务器:apt-get install samba2.安装smb支持的文件系 ...

  4. js图片预览带进度条

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. php代码判断用户访问的当前协议是否为https

    public function isHttps() { if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) ...

  6. koa2中间件

    在我看来,前端框架的中间件的思想来源于传统后端的切面编程(AOP)思想,比如我们常见的身份校验(JWT). axios的拦截器也是基于这种程序设计模式的. 在koa中,实际上是由一个数组对象来保存所有 ...

  7. Linux 查看修改SWAP大小

    1  查看swap 空间大小(总计):     # free -m          默认单位为k, -m 单位为M                total       used       fre ...

  8. HADOOP依赖

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. Leetcode之动态规划(DP)专题-198. 打家劫舍(House Robber)

    Leetcode之动态规划(DP)专题-198. 打家劫舍(House Robber) 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互 ...

  10. Pandas导入导出&pickle文件模块

    Pandas可以读取与存储的文件格式有很多 像csv,excel,json,html等,详细请看官方文档https://pandas.pydata.org/pandas-docs/stable/use ...