static public async Task<IEnumerable<TResult>> SelectAsync<TSource, TResult>(
this IEnumerable<TSource> @this,
Func<TSource, Task<TResult>> selector) =>
await Task.WhenAll(@this.Select(async x => await selector(x)
.ConfigureAwait(continueOnCapturedContext: false)))
.ConfigureAwait(continueOnCapturedContext: false);
static public async Task<IEnumerable<TResult>> SelectAsync<TSource, TResult>(
this IEnumerable<TSource> @this,
Func<TSource, Task<TResult>> selector) =>
await Task.WhenAll(@this.Select(async x => await selector(x)
.ConfigureAwait(continueOnCapturedContext: false)))
.ConfigureAwait(continueOnCapturedContext: false);