SpanExtensions.Net
1.5.1
dotnet add package SpanExtensions.Net --version 1.5.1
NuGet\Install-Package SpanExtensions.Net -Version 1.5.1
<PackageReference Include="SpanExtensions.Net" Version="1.5.1" />
<PackageVersion Include="SpanExtensions.Net" Version="1.5.1" />
<PackageReference Include="SpanExtensions.Net" />
paket add SpanExtensions.Net --version 1.5.1
#r "nuget: SpanExtensions.Net, 1.5.1"
#addin nuget:?package=SpanExtensions.Net&version=1.5.1
#tool nuget:?package=SpanExtensions.Net&version=1.5.1
SpanExtensions
About
ReadonlySpan<T>
and Span<T>
are great Types in C#, but unfortunately working with them can sometimes be sort of a hassle and some use cases seem straight up impossible, even though they are not.
SpanExtensions.Net aims to help developers use ReadonlySpan<T>
and Span<T>
more productively, efficiently and safely and write overall more performant Programs.
Never again switch back to using string
instead of ReadonlySpan<T>
, just because the method you seek is not supported.
SpanExtensions.Net provides alternatives for many missing Extension Methods for ReadonlySpan<T>
and Span<T>
, ranging from string.Split()
over Enumerable.Skip()
and Enumerable.Take()
to an improved ReadOnlySpan<T>.IndexOf()
.
Methods
The following Extension Methods are contained:
String Methods made available for ReadonlySpan<T>
and Span<T>
:
(ReadOnly-)Span<T>.Split(T delimiter)
(ReadOnly-)Span<T>.Split(T delimiter, int count)
(ReadOnly-)Span<T>.Split(T delimiter, StringSplitOptions options)
(ReadOnly-)Span<T>.Split(T delimiter, StringSplitOptions options, int count)
(ReadOnly-)Span<T>.Split(ReadOnlySpan<T> delimiters)
(ReadOnly-)Span<T>.Split(ReadOnlySpan<T> delimiters, int count)
(ReadOnly-)Span<T>.Split(ReadOnlySpan<T> delimiters, StringSplitOptions options)
(ReadOnly-)Span<T>.Split(ReadOnlySpan<T> delimiters, StringSplitOptions options, int count)
(ReadOnly-)Span<T>.SplitAny(ReadOnlySpan<T> delimiters)
(ReadOnly-)Span<T>.SplitAny(ReadOnlySpan<T> delimiters, int count)
(ReadOnly-)Span<T>.SplitAny(ReadOnlySpan<T> delimiters, StringSplitOptions options)
(ReadOnly-)Span<T>.SplitAny(ReadOnlySpan<T> delimiters, StringSplitOptions options, int count)
(ReadOnly-)Span<T>.Remove(int startIndex)
Span<T>.Replace(T oldT, T newT)
Linq Methods made available for ReadonlySpan<T>
and Span<T>
:
(ReadOnly-)Span<T>.All(Predicate<T> predicate)
(ReadOnly-)Span<T>.Any(Predicate<T> predicate)
(ReadOnly-)Span<T>.Average()
(ReadOnly-)Span<T>.Sum()
(ReadOnly-)Span<T>.Min()
(ReadOnly-)Span<T>.Max()
(ReadOnly-)Span<T>.Skip(int count)
(ReadOnly-)Span<T>.Take(int count)
(ReadOnly-)Span<T>.SkipLast(int count)
(ReadOnly-)Span<T>.Takelast(int count)
(ReadOnly-)Span<T>.SkipWhile(Predicate<T> condition)
(ReadOnly-)Span<T>.TakeWhile(Predicate<T> condition)
(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()
(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()
(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)
Contributing
Thank you for your interest in contributing to this project! - You may contribute on Github.
License
Copyright (c) draconware-dev. All rights reserved.
Licensed under the MIT license.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.