[英]Identifying Min and Max values of a property on a list of objects
我有这堂课
class TimeSeriesDataPoint
{
public int HistorianID { get; set; }
public string Time { get; set; }
public double Value { get; set; }
public int Quality { get; set; }
}
以及该类对象的列表数组
List<TimeSeriesDataPoint>[] Curves = new List<TimeSeriesDataPoint>[numberOfCurves];
每个曲线都有大约1000个TimeSeriesDataPoint对象的列表。 我需要为每个曲线(曲线[0],曲线[1]等)标识属性“值”的最小值和最大值。
我可以使用List类中存在的Min和Max方法吗? 有人可以帮我吗?
雷南
您可以使用Min()
和Max()
扩展方法:
var results = Curves.Select(c => new { Min=c.Min(t => t.Value), Max=c.Max(t => t.Value) });
对于每条曲线,这将为您提供最小和最大。 但是,它将枚举每个集合两次(一次代表最小,一次代表最大)。
var maxEachCurve = Curves.Select( curve => curve.Max( x => x.Value ) );
var minEachCurve = Curves.Select( curve => curve.Min( x => x.Value ) );
maxEachCurve
, minEach
曲线现在是IEnumerable<double>
,其中每个元素都是该曲线的最大值/最小值
或一次通过:
var minMaxEachCurve = Curves.Select(
curve => new Tuple<double,double>(
curve.Min( x=> x.Value),
curve.Max( x => x.Value ) ));
minMaxEachCurve现在是IEnumerable<Tuple<double,double>>
,其中每个元素都是一对最小/最大值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.