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);
        }
Exemple #4
0
 public override void CopyTo(TSource[] array, int _)
 => ArrayExtensions.Copy(source.Span, array);