public ValueMemoryOwner <TResult> ToArray(ArrayPool <TResult> pool, bool clearOnDispose = default)
            {
                var result = pool.RentSliced(count, clearOnDispose);

                ArrayExtensions.CopyRange(start, count, result.Memory.Span, vectorSelector, selector);
                return(result);
            }
        public static ValueMemoryOwner <TSource> ToArray <TSource>(this ReadOnlySpan <TSource> source, ArrayPool <TSource> pool, bool clearOnDispose = default)
        {
            var result = pool.RentSliced(source.Length, clearOnDispose);

            Copy(source, result.Memory.Span);
            return(result);
        }
        public readonly ArraySegment <T> ToArray(ArrayPool <T> pool)
        {
            Debug.Assert(pool is object);
            var result = pool.RentSliced(Count);

            CopyTo(result.Array !);
            return(result);
        }