比较值是否在“范围”中的最快方法
本文关键字:方法 范围 是否 比较 | 更新日期: 2023-09-27 18:30:24
我有一个类
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; }
}
和范围类
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进行比较。检查属性是否在该范围内的最快方法是什么?
我不知道
你的问题是什么,这很简单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);
我无法想到非常快的方法,但我更喜欢封装。