public static PolicyResult <TResult> RaiseResultSequenceOnExecuteAndCapture <TResult>(this ContextualPolicy <TResult> policy, IDictionary <string, object> contextData, IEnumerable <TResult> resultsToRaise) { var enumerator = resultsToRaise.GetEnumerator(); return(policy.ExecuteAndCapture(() => { if (!enumerator.MoveNext()) { throw new ArgumentOutOfRangeException("resultsToRaise", "Not enough TResult values in resultsToRaise."); } return enumerator.Current; }, contextData)); }