using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Science.Statistics.BasicStatistics { public class Median { private double median; public Median(List data) { var query = from numbers in data //select the numbers orderby numbers ascending select numbers; if (data.Count % 2 == 0) //we know its even { int element = data.Count / 2; median = (double)((query.ElementAt(element - 1) + query.ElementAt(element))/2); } else //we know its odd { double element = (double)data.Count / 2; element = Math.Round(element, MidpointRounding.AwayFromZero); median = (double)query.ElementAt((int)(element - 1)); } } public double Value { get { return median; } } } }