using System; using System.Threading.Tasks; using System.Collections.Generic; namespace math { public class RecordingObserver : IObserver { TaskCompletionSource> tcs = new TaskCompletionSource>(); List data = new List(); public void OnCompleted() { tcs.SetResult(data); } public void OnError(Exception error) { tcs.SetException(error); } public void OnNext(T value) { data.Add(value); } public Task> ToList() { return tcs.Task; } } }