public static TSource ElementAtOrDefault <TSource>(this ReadOnlyMemory <TSource> source, int index) => source.OfMemory().ElementAtOrDefault(index);
public static List <T> ToList <T>(this ReadOnlyMemory <T> source) => source.OfMemory().ToList();
//public static ValueEnumerable<TResult, SelectManyNode<TSource, TResult, MemoryNode<TSource>, EnumerableNode<TResult>>> SelectMany<TSource, TResult>(this ReadOnlyMemory<TSource> source, Func<TSource, IEnumerable<TResult>> selector) //{ // if (selector == null) // throw new ArgumentNullException(nameof(selector)); // return source.OfMemory().SelectMany(src => selector(src).OfEnumerable()); //} //public static ValueEnumerable<TResult, SelectManyNode<TSource, TResult, MemoryNode<TSource>, NodeU>> SelectMany<TSource, TResult, NodeU>(this ReadOnlyMemory<TSource> source, Func<TSource, ValueEnumerable<TResult, NodeU>> selector) // where NodeU : INode<TResult> //{ // if (selector == null) // throw new ArgumentNullException(nameof(selector)); // return source.OfMemory().SelectMany(selector); //} public static IEnumerable <T> Concat <T>(this ReadOnlyMemory <T> first, ReadOnlyMemory <T> second) => first.OfMemory().Concat(second.OfMemory());
public static TSource LastOrDefault <TSource>(this ReadOnlyMemory <TSource> source) => source.OfMemory().LastOrDefault();