【发布时间】:2017-12-08 06:47:01
【问题描述】:
抱歉...我不太擅长编码,但还是这样吧。
基本上我有一个类的列表,我想获得它的最小值和最大值。让我绊倒的部分是我需要按时间顺序排列最小值和最大值。希望这幅图有助于说明我的意思。
Graph of object with date and value
正如您在上面看到的,第一个值实际上是最大值,但最小值不是另外 2 个增量。
所以我试图构造一个 where 语句,但我不知道如何混合类变量类型以正确查询......另外如何注意最小值的日期必须早于最大值,没有但知道最大值(反之亦然)。
显然下面的代码根本不起作用,获取最小值/最大值的逻辑有缺陷,但希望它有助于理解我正在尝试做的事情......
public static MinMax MinandMax(List<ValueHistoric> InputList, int take)
{
InputList.Reverse();
var CutList = InputList.Take(take);
var CutListMax = CutList.Where(a => a.Value == CutList.Max(b => b.Value) && a.Date > CutList.Min.Date);
var CutListMin = CutList.Where(a => a.Value == CutList.Min(b => b.Value) && a.Date < CutList.Max.Date>);
//Put Min and Max into variables here
MinMax results = new MinMax();
results.Max = last12max;
results.Min = last12min;
return results;
}
public class ValueHistoric
{
public ObjectId Id { get; set; }
public DateTime Date { get; set; }
public double Value { get; set; }
public string Name { get; set; }
}
【问题讨论】:
-
那么,逻辑应该是:找到所有对象的绝对最小值,然后在按时间顺序跟随它的所有对象中搜索最大值。请在尝试后更新您的帖子。
-
你想先得到最小值。然后找到两个最大值。比最小值早一个,比最小值晚一个。