数学统计使用LINQ [英] math stats with Linq

查看:114
本文介绍了数学统计使用LINQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的个人对象(IEnumerable的)的集合,每个人都有一个年龄属性。



我要生成的集合,如最大值,最小值,平均值,中位数等在这个年龄段的物业统计信息。



什么是做这个使用LINQ的最优雅的方式?


解决方案

 最大值 -  persons.Max(p => p.age); 
分 - persons.Min(P => p.age);
平均 - persons.Average(P => p.age);



在偶数元素的情况下修正了中位数



 诠释计数= persons.Count(); 
VAR orderedPersons = persons.OrderBy(P => p.age);
浮子中位数= orderedPersons.ElementAt(计数/ 2)。年龄+ orderedPersons.ElementAt((计数-1)/ 2)。年龄;
位/ = 2;


I have a collection of person objects (IEnumerable) and each person has an age property.

I want to generate stats on the collection such as Max, Min, Average, Median, etc on this age property.

What is the most elegant way of doing this using LINQ?

解决方案

max - persons.Max(p => p.age);
min - persons.Min(p => p.age);
average - persons.Average(p => p.age);

Fix for median in case of even number of elements

int count = persons.Count();
var orderedPersons = persons.OrderBy(p => p.age);
float median = orderedPersons.ElementAt(count/2).age + orderedPersons.ElementAt((count-1)/2).age;
median /= 2;

这篇关于数学统计使用LINQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆