博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq之求和,平均值,最大值,最小值
阅读量:5923 次
发布时间:2019-06-19

本文共 2651 字,大约阅读时间需要 8 分钟。

写在前面

最近一直在弄统计的内容,和统计相关的操作,就需要用到了,而有些在数据库中操作起来非常不方便,没办法就用c#中的linq来实现了。

代码

一个例子

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
list = new List
(); 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(); } } ///
/// 产品类 /// class Product { ///
/// 产品id /// public int ID { set; get; } ///
/// 产品名称 /// public string Name { set; get; } ///
/// 产品单价 /// public double Price { set; get; } ///
/// 生产日期 /// public DateTime ProductDate { set; get; } }}

测试结果

总结

在写group的时候,第一上手就出错了,很久没用linq中的group,忘记怎么使用了,竟然还有个into,跟sql语法差别就在这里。这里练习一下,做个备忘。

参考

http://www.cnblogs.com/wuchao/archive/2012/12/25/2832744.html

 

你可能感兴趣的文章
MongoDB4.0支持事务管理
查看>>
主成分分析( PCA )与 白化( whitening )
查看>>
Android 中的线程池
查看>>
MAC_mysql_install
查看>>
如何实现自己的SpringBoot自动配置
查看>>
如何免费生成资讯类App
查看>>
Apache Kafka:大数据的实时处理时代
查看>>
三步骤快速开发 iOS资讯类App
查看>>
最强前端性能优化,Google已经为你准备好了
查看>>
java版spring cloud+spring boot+redis多租户社交电子商务平台(十二)断路器监控(Hystrix Dashboard)...
查看>>
阿里云图片上传
查看>>
父传子
查看>>
前端面试题目汇总摘录(HTML 和 CSS篇)
查看>>
异步执行顺序
查看>>
js判断对象是否为空
查看>>
使用jest测试Koa应用
查看>>
开发适用于微信小程序的跨平台图表库:part1
查看>>
亚马逊苹果在中国不行了,下一个该星巴克了?
查看>>
北京—【望京SOHO】样本通 招前端开发工程师(react)
查看>>
Redisson之几种分布式队列
查看>>