public void AnalyzeStreamWithPercentage(int percentage) { if (percentage < 0) { throw new ArgumentException("Процент от 0"); } foreach (var item in _numberStream) { if (100 * item / _averageValue > percentage) { TooBigDifferenceEvent?.Invoke("Элемент " + item + " отличается от среднего значения " + _averageValue + " слишком сильно.\nДопустимая разница в процентах: " + percentage + "% Обнаруженная: " + 100 * item / _averageValue + "%"); } } }
public void AnalyzeStreamWithConstant(double difference) { if (difference < 0) { throw new ArgumentException("Разница должна быть положительной"); } double previous = _numberStream.First(); foreach (var item in _numberStream) { if (Math.Abs(item - previous) > difference) { TooBigDifferenceEvent?.Invoke("Элементы " + previous + " и " + item + " различаются слишком сильно.\nДопустимая разница: " + difference + " Обнаруженная: " + Math.Abs(item - previous)); previous = item; } else { previous = item; } } }