private IEnumerable <double> ApplyDoubleTransformation(Transformation <double> transformation, IList <double> data, out bool success, out string errorMsg) { success = transformation.Check(data, out errorMsg); // don't apply when the check fails if (success) { return(transformation.Apply(data)); } else { return(data); } }