2012-04-05 4 views
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. Какой будет самый быстрый способ проверить, попадает ли свойство в диапазон.?

+0

Какой язык? –

+0

C# 4.0 ........ – Greens

+0

OK - добавлен тег C# –

ответ

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); 

Я могу» Думаю, что это очень быстрый способ, но я предпочитаю инкапсуляцию.

Смежные вопросы