Sundew.Base.Collections
12.0.10
See the version list below for details.
dotnet add package Sundew.Base.Collections --version 12.0.10
NuGet\Install-Package Sundew.Base.Collections -Version 12.0.10
<PackageReference Include="Sundew.Base.Collections" Version="12.0.10" />
paket add Sundew.Base.Collections --version 12.0.10
#r "nuget: Sundew.Base.Collections, 12.0.10"
// Install Sundew.Base.Collections as a Cake Addin #addin nuget:?package=Sundew.Base.Collections&version=12.0.10 // Install Sundew.Base.Collections as a Cake Tool #tool nuget:?package=Sundew.Base.Collections&version=12.0.10
Sundew.Base
Sundew.Base is a collection of smaller NuGet packages that work on various .NETStandard targets:
Collections
Contains various Linq style extension methods for collection types suchs IEnumerable, IReadOnlyList etc.
- For, ForEach, ForReverse, IndexOf, ToReadOnly.
- AllOrFailed extension allows seemless conversion from IEnumerable<TItem?> to IEnumerable<TItem>.
- OnlyOneOrDefault similar to SingleOrDefault, but never throws.
- DistinctInOrder items only appear once, while preserving order.
- ByCardinality extension allows checking whether an IEnumerable<TItem> is empty, has a single element or multiple elements.
- Value-Array, List and Dictionary* wrappers for Immutable collections with value semantics. (* Not on NETStandard1.2)
Primitives
- Result types (R<T, E> and R<E>)
- Option type T? (through extension methods).
Computation
- Attempter for implementing retry logic.
- Progress reporting
Numeric
- Interval represents an interval of two values.
- Percentage value type.
Time
- DateTime provider.
IO
- Paths - search upwards for relative paths.
Text
- AlignedString and AlignAndLimitFormatProvider providers aligning and length limiting string formatting.
- NamedFormatString allows to define a string format using names rather than indices.
- NaturalTextComparer does logical text comparison for all platforms with performance similar to the Windows specific StrCmpLogicalW.
- AppendItems allows joining items into a StringBuilder.
Initialization
- IInitializable for implementing async initialization logic.
- InitializeAction for wrapping an Action in an IInitializable.
- Initializer provides initialization of IInitializables.
- InitializeFlag for keeping tracking whether initialization is completed.
Disposal
- DisposeAction for wrapping an Action in an IDisposable.
- Disposer provides disposal of a fixed set of IDisposables.
- DisposableState provides an easy way to implement the Dispose(bool) pattern.
- DisposingDictionary allows building a list of IDisposables that supports disposal by a key and otherwise supports disposal in the same order.
- DisposingList allows building a list of IDisposables for disposal in the same order.
IAsyncDisposable is only supported on .NETStandard2.1
Equality
- ReferenceEqualityComparer compares objects by reference.
- TargetEqualityWeakReference is a weak reference that implements equality based on target equality.
Memory
- Buffer allows building arrays
- Split extensions allows Linq style splitting memory in to segments.
Threading and Threading.Jobs
- AsyncLazy provides a cancellable async lazy implementation
- AsyncLock provides async locking.
- Flag is an Interlocked.Exchanged based flag.
- CancellableJob is implementation of a cancellable task.
- ContinusJob is implementation of a cancellable task that keeps running.
Timers
- Timer is an easy to use and modify timer.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. 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 was computed. 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. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.3 is compatible. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.3
- NETStandard.Library (>= 1.6.1)
- Sundew.Base.Collections.Immutable (>= 12.0.10)
- Sundew.Base.Collections.Linq (>= 12.0.10)
- Sundew.Base.Memory (>= 12.0.10)
- Sundew.Base.Primitives (>= 12.0.10)
- System.Buffers (>= 4.5.1)
- System.Collections.Immutable (>= 5.0.0)
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 5.0.0)
- System.Threading.Tasks.Extensions (>= 4.5.4)
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- Microsoft.Bcl.Hashcode (>= 1.1.1)
- Sundew.Base.Collections.Immutable (>= 12.0.10)
- Sundew.Base.Collections.Linq (>= 12.0.10)
- Sundew.Base.Memory (>= 12.0.10)
- Sundew.Base.Primitives (>= 12.0.10)
- System.Buffers (>= 4.5.1)
- System.Collections.Immutable (>= 6.0.0)
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
- System.Threading.Tasks.Extensions (>= 4.5.4)
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.1
- Sundew.Base.Collections.Immutable (>= 12.0.10)
- Sundew.Base.Collections.Linq (>= 12.0.10)
- Sundew.Base.Memory (>= 12.0.10)
- Sundew.Base.Primitives (>= 12.0.10)
- System.Buffers (>= 4.5.1)
- System.Collections.Immutable (>= 6.0.0)
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
- System.Threading.Tasks.Extensions (>= 4.5.4)
- System.ValueTuple (>= 4.5.0)
-
net6.0
- Sundew.Base.Collections.Immutable (>= 12.0.10)
- Sundew.Base.Collections.Linq (>= 12.0.10)
- Sundew.Base.Memory (>= 12.0.10)
- Sundew.Base.Primitives (>= 12.0.10)
- System.Buffers (>= 4.5.1)
- System.Collections.Immutable (>= 6.0.0)
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
- System.Threading.Tasks.Extensions (>= 4.5.4)
- System.ValueTuple (>= 4.5.0)
-
net8.0
- Sundew.Base.Collections.Immutable (>= 12.0.10)
- Sundew.Base.Collections.Linq (>= 12.0.10)
- Sundew.Base.Memory (>= 12.0.10)
- Sundew.Base.Primitives (>= 12.0.10)
- System.Buffers (>= 4.5.1)
- System.Collections.Immutable (>= 6.0.0)
- System.Memory (>= 4.5.5)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
- System.Threading.Tasks.Extensions (>= 4.5.4)
- System.ValueTuple (>= 4.5.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on Sundew.Base.Collections:
Package | Downloads |
---|---|
Sundew.Base
All in one package including: Sundew.Base.Collections Sundew.Base.Disposal Sundew.Base.Equality Sundew.Base.Initialization Sundew.Base.Memory Sundew.Base.Primitives Sundew.Base.Computation Sundew.Base.Numeric Sundew.Base.Time Sundew.Base.IO Sundew.Base.Reporting Sundew.Base.Text Sundew.Base.Threading.Jobs Sundew.Base.Threading Sundew.Base.Timers |
|
Sundew.CommandLine
Simple library for creating a command line. Features: - *nix style command line. -x, --xx - Includes command line parser, generator and help generator - Object oriented - Verbs and non-verbs (Implement IVerb or IArguments) - Parses/Generates: simple types, lists, nested types. - Supports optional/required arguments - Nested arguments for argument grouping and reuse |
|
Sundew.Base.Text
Extension methods and classes for working with text. |
|
Sundew.Base.Disposal
Various type helping with implementation of IDisposable |
|
Sundew.Generator
Sundew.Generator is a code generator aiming to provide an alternative or replacement for T4 templates. |
GitHub repositories
This package is not used by any popular GitHub repositories.
12.0 - Restructing into smaller packages
11.0 - Unified Disposal and Initialization
10.0 - O.None was changed to a property
9.0 - Immutable collections with value semantics, Result type redesign and new Option type, AppendItems replaces AggregateToStringBuilder and JoinToStringBuilder.
8.5 - JoinToStringBuilder and AggregateToStringBuilder improvements
8.4 - AllOrFailed extension for IEnumerable<T>
8.3 - NamedFormatString and AsyncLazy improvements
8.2 - ToEnumerable returns IReadOnlyCollection, Added Disposer ctors to avoid ambiguous calls
8.1 - Added NaturalTextComparer
8.0 - Added NamedFormatProvider, removed Text Split, use Memory.Split instead
7.0 - Split into separate packages and cleanup