public static IAsyncObservable <TSource> ElementAt <TSource>(this IAsyncObservable <TSource> source, int index) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (index < 0) { throw new ArgumentOutOfRangeException(nameof(index)); } return(Create <TSource>(observer => source.SubscribeSafeAsync(AsyncObserver.ElementAt(observer, index)))); }