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 を使用できますか? 巨大な List を 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 に答える