0

我有一堂课

public class VitalSign
{
    public double? Temprature { get; set; }
    public double? SystolicBP { get; set; }
    public double? DiastolicBP { get; set; }
    public double? PulseRate { get; set; }
    public double? Respirations { get; set; }
}

和一个 Range 类

 public  class VitalRange
{
    public Tuple<double,double> TemperatureRange { get; set; }
    public Tuple<double, double> SystolicBPRange { get; set; }
    public Tuple<double, double> DiastolicBPRange { get; set; }
    public Tuple<double, double> RespirationsRange { get; set; }
    public Tuple<double, double> PulseRange { get; set; }
}

与 VitalRange(温度)相比,我必须比较我的属性(比如温度)是否超出范围。在这种情况下我可以使用元组还是可以为范围设置 KVP?我会将一个巨大的列表与 VitalRange 进行比较。检查属性是否在范围内的最快方法是什么?

4

1 回答 1

1

我不知道你的问题是什么,很简单if,但是你可以使用扩展方法来封装它:

public static bool IsInRange(this double? input, Tuple<double, double> range)
{
   if (!input.HasValue)
      return false;
   return input >= range.Item1 && input <= range.Item2;
}

并像这样使用它:

VitalRange sampleRanges = ....;
var validTempers = vitalSignList.Where(x=>x.Temprature.IsInRange(sampleRange.VitalRange);

我想不出更快的方法,但我更喜欢封装。

于 2012-04-05T22:48:41.763 回答