Здравствуйте, Tasheehoo, Вы писали:
T>Привет.
T>Есть поток значений.
T>Значения скачцт вверх и вниз(больше/меньше).
T>Нужно сделать так чтоб если значение попадает в указанный диапазон, определять это событие. И нужно какимто образом сделать это окно(диапазон), вроде прилипающим чтоле... Чтоб избежать лишних срабатываний если следующее придшее значение будет незначительно ниже или выше этого "окна"..
T>Подскажите как это сделать, или что гуглить.
T>UP.
T>Может сделать это по тригерной логике? Когда значение достигает порога вхождения в "окно" — тригер срабатывает, а чтоб тригер сработал в обратну сторону значение должно достичь противополодной граници окна?
T>Как такое называется?
High watermark, low watermark. Так работают водокачки: включаются, когда значение ниже минимума, и выключаются, когда выше максимума.
public IEnumerable<int> HighLowWatermarkFilter(IEnumerable<int> source, int lowWaterMark, int highWaterMark)
{
if (source == null)
throw new ArgumentNullException(nameof(source));
if(highWaterMark<lowWaterMark)
throw new ArgumentException();
return HighLowWatermarkFilterImpl(source, lowWaterMark, highWaterMark);
}
private IEnumerable<int> HighLowWatermarkFilterImpl(IEnumerable<int> source, int lowWaterMark, int highWaterMark)
{
bool high = true;
foreach(var val in source)
{
if(high && val < lowWaterMark)
{
high = false; yield return val;
}
if(!high && val > highWaterMark)
{
high = true; yield return val;
}
}
}
Привет.
Есть поток значений.
Значения скачцт вверх и вниз(больше/меньше).
Нужно сделать так чтоб если значение попадает в указанный диапазон, определять это событие. И нужно какимто образом сделать это окно(диапазон), вроде прилипающим чтоле... Чтоб избежать лишних срабатываний если следующее придшее значение будет незначительно ниже или выше этого "окна"..
Подскажите как это сделать, или что гуглить.
UP.
Может сделать это по тригерной логике? Когда значение достигает порога вхождения в "окно" — тригер срабатывает, а чтоб тригер сработал в обратну сторону значение должно достичь противополодной граници окна?
Как такое называется?