All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning from v2.0 onwards.
- a bug in Min() in .net7.0.
- an empty array not being treated as whitespace by range-based Split methods (#27)
- the SearchValues-overload of range-based Split methods.
- vectorized
Min()andMax(). - transitioned to semantic versioning.
- incorrect ranges returned by the range-based Split method for versions prior to .Net 9.
- moved MemoryExtensions containing range-based Split method for versions prior to .Net 9 from
SystemtoSpanExtensions. - grammatical issues in some documentation comments.
- incorrect ranges returned by the range-based Split method for versions prior to .Net 9.
- moved MemoryExtensions containing range-based Split method for versions prior to .Net 9 from
SystemtoSpanExtensions. - grammatical issues in some documentation comments.
- implementations of the newly introduced Span.Split methods from .Net 9 for any version prior to .Net 9 to maintain backwards-compatibility across .Net versions.
- Split extension methods to refer to new split implementations compatible to the ones in .Net 9 and made .Net 9 split methods the default from that version onwards. The original split methods are still accessible as static methods.
- original Split methods are no longer available without passing span as a parameter.
(Readonly-)Span<T>.Count(...)overloads to all versions before .Net 8 matching these introduced in .Net 8.
- blocked compilation on .Net 9 due to known incompatibilities, which are to be resolved in version 1.5.
- a collision between the
Span<T>.Replacemethod provided by SpanExtensions and the one newly provided by .Net 8.
(Readonly-)Span<T>.Count()(Readonly-)Span<T>.Count(Predicate<T> predicate)
Splitto throw anArgumentExceptioninstead of anInvalidCountExceedingBehaviourException
InvalidCountExceedingBehaviourException
- various issues with
Split(#11)
- Compatibility with .Net 8
(Readonly-)Span<T>.First()(Readonly-)Span<T>.First(Predicate<T> predicate)(Readonly-)Span<T>.FirstOrDefault()(Readonly-)Span<T>.FirstOrDefault(Predicate<T> predicate)(Readonly-)Span<T>.FirstOrDefault(T defaultValue)(Readonly-)Span<T>.FirstOrDefault(Predicate<T> predicate, T defaultValue)(Readonly-)Span<T>.Last()(Readonly-)Span<T>.Last(Predicate<T> predicate)(Readonly-)Span<T>.LastOrDefault()(Readonly-)Span<T>.LastOrDefault(Predicate<T> predicate)(Readonly-)Span<T>.LastOrDefault(T defaultValue)(Readonly-)Span<T>.LastOrDefault(Predicate<T> predicate, T defaultValue)(Readonly-)Span<T>.Single()(Readonly-)Span<T>.Single(Predicate<T> predicate)(Readonly-)Span<T>.SingleOrDefault()(Readonly-)Span<T>.SingleOrDefault(Predicate<T> predicate)(Readonly-)Span<T>.SingleOrDefault(T defaultValue)(Readonly-)Span<T>.SingleOrDefault(Predicate<T> predicate, T defaultValue)(Readonly-)Span<T>.ElementAt(int index)(Readonly-)Span<T>.ElementAt(Index index)(Readonly-)Span<T>.ElementAtOrDefault(int index)(Readonly-)Span<T>.ElementAtOrDefault(Index index)(Readonly-)Span<T>.ElementAtOrDefault(int index, T defaultValue)(Readonly-)Span<T>.ElementAtOrDefault(Index index, T defaultValue)(Readonly-)Span<T>.Min()(#13)(Readonly-)Span<T>.Min(Func<TSource, TResult> selector)(Readonly-)Span<T>.MinBy(Func<TSource, TKey> keySelector)(Readonly-)Span<T>.MinBy(Func<TSource, TKey> keySelector, IComparer<TKey> comparer)(Readonly-)Span<T>.Max()(#13)(Readonly-)Span<T>.Max(Func<TSource, TResult> selector)(Readonly-)Span<T>.MaxBy(Func<TSource, TKey> keySelector)(Readonly-)Span<T>.MaxBy(Func<TSource, TKey> keySelector, IComparer<TKey> comparer)- nuget badge to README (#12)
CountExceedingBehaviour, which is passed to Split, defining how to properly handle its remaining elements.
- documentation comments to better reflect the dotnet style (#8)
- swapped order of
countandstringSplitOptions argumentsinSplitmethods. - renamed argument
spaninSplitmethods tosource.
- empty spans being ignored if they are the last element to be returned from
Splitand are therefore not returned. (#10)
- Ambiguous Extension Methods (#6)
- Correctness of some documentation comments
- Missing documentation comments
- Grammatical issues in some documentation comments
- moved custom Enumerators into
SpanExtensions.Enumerators - declared every
GetEnumeratormethod in a ref struct asreadonly - renamed the source ReadOnlySpan in 10 out of 12 custom Enumerators from span to source
- Compatibility with .Net 6
- Compatibility with .Net 5
- Compatibility with .Net Standard 2.1
(Readonly-)Span<T>.SkipWhile(Predicate<T> predicate)(Readonly-)Span<T>.SkipWhile(Func<T, int, bool> predicate)(Readonly-)Span<T>.TakeWhile(Predicate<T> predicate)(Readonly-)Span<T>.TakeWhile(Func<T, int, bool> predicate)- Missing documentation comments
- Changelog
- Grammatical issues in some documentation comments
- Broken link to the repository on nuget (#3)