static IMemoryOwner <TResult> ToArray <TSource, TResult>(this ReadOnlySpan <TSource> source, NullableSelectorAt <TSource, TResult> selector, MemoryPool <TResult> pool) { var result = pool.RentSliced(source.Length); ArrayExtensions.Copy(source, result.Memory.Span, selector); return(result); }
static TResult[] ToArray <TSource, TResult>(this ReadOnlySpan <TSource> source, NullableSelectorAt <TSource, TResult> selector) { #if NET5_0 var result = GC.AllocateUninitializedArray <TResult>(source.Length); #else var result = new TResult[source.Length]; #endif ArrayExtensions.Copy(source, result, selector); return(result); }
public static IMemoryOwner <TSource> ToArray <TSource>(this ReadOnlySpan <TSource> source, MemoryPool <TSource> pool) { if (pool is null) { Throw.ArgumentNullException(nameof(pool)); } var result = pool.RentSliced(source.Length); ArrayExtensions.Copy(source, result.Memory.Span); return(result); }
public override void CopyTo(TSource[] array, int _) => ArrayExtensions.Copy(source.Span, array);