EnhancedLinq.Memory
1.0.0-alpha.5
Prefix Reserved
dotnet add package EnhancedLinq.Memory --version 1.0.0-alpha.5
NuGet\Install-Package EnhancedLinq.Memory -Version 1.0.0-alpha.5
<PackageReference Include="EnhancedLinq.Memory" Version="1.0.0-alpha.5" />
<PackageVersion Include="EnhancedLinq.Memory" Version="1.0.0-alpha.5" />
<PackageReference Include="EnhancedLinq.Memory" />
paket add EnhancedLinq.Memory --version 1.0.0-alpha.5
#r "nuget: EnhancedLinq.Memory, 1.0.0-alpha.5"
#:package EnhancedLinq.Memory@1.0.0-alpha.5
#addin nuget:?package=EnhancedLinq.Memory&version=1.0.0-alpha.5&prerelease
#tool nuget:?package=EnhancedLinq.Memory&version=1.0.0-alpha.5&prerelease
EnhancedLinq.Memory
A set of Immediate Mode LINQ lambda-style extensions specifically designed for working with Spans and System.Memory data structures in .NET.
Now updated to use C# 14 and extension everything as of version 0.12.0. C# language version must be set to 14 or higher for EnhancedLinq to work.
License
This project is licensed under the MPL 2.0 License. See the LICENSE file for more details.
Features
- Immediate Mode LINQ Extensions: Most extensions in this package operate in immediate mode, meaning they execute as soon as they are called, making them suitable for use with
Span<T>.
Installation
You can install the EnhancedLinq.Memory package via NuGet Package Manager with the following command:
Install-Package EnhancedLinq.Memory
Alternatively, you can add it to your project file:
<PackageReference Include="EnhancedLinq.Memory" Version="0.1.0" />
Usage
Here are some examples of how to use the extensions provided by EnhancedLinq.Memory:
Example 1: Using Immediate LINQ Extensions
using EnhancedLinq.Memory.Immediate;
Span<int> numbers = new int[] { 1, 2, 3, 4, 5 };
// Using the Sum extension
int sum = numbers.Sum(); // Returns 15
// Using the Where extension
Span<int> evenNumbers = numbers.Where(n => n % 2 == 0); // Returns { 2, 4 }
// Using the Select extension
Span<string> result = evenNumbers.Select(n => n.ToString());
Console.WriteLine(string.Join(", ", result)); // Outputs: 2, 4
Example 2: Working with Memory<T>
using EnhancedLinq.Memory;
Memory<int> memoryNumbers = new Memory<int>(new int[] { 1, 2, 3, 4, 5 });
// Using the Average extension
double average = memoryNumbers.Average(); // Returns 3.0
Contributing
Contributions are welcome! If you would like to contribute to EnhancedLinq.Memory, please follow the contributing guide
Support
For any issues or feature requests, please open an issue in the GitHub repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. 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. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | 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 | tizen40 was computed. 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.0
- DotExtensions (>= 9.4.1)
- DotExtensions.Memory (>= 9.4.1)
- DotPrimitives.Collections (>= 4.1.0)
-
net10.0
- DotExtensions (>= 9.4.1)
- DotExtensions.Memory (>= 9.4.1)
- DotPrimitives.Collections (>= 4.1.0)
-
net8.0
- DotExtensions (>= 9.4.1)
- DotExtensions.Memory (>= 9.4.1)
- DotPrimitives.Collections (>= 4.1.0)
-
net9.0
- DotExtensions (>= 9.4.1)
- DotExtensions.Memory (>= 9.4.1)
- DotPrimitives.Collections (>= 4.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-alpha.5 | 32 | 1/23/2026 |
| 1.0.0-alpha.4 | 97 | 1/3/2026 |
| 1.0.0-alpha.3 | 152 | 12/23/2025 |
| 1.0.0-alpha.2 | 426 | 12/8/2025 |
| 1.0.0-alpha.1 | 642 | 12/2/2025 |
* Updated internal Polyfill version from 9.6.0 to 9.7.2
* Updated DotExtensions.Memory from 9.3.0 to 9.4.1
* Add immediate mode ``Skip``, ``SkipLast``, and ``SkipWhile`` for ``ReadOnlySpan<T>``
* Add immediate mode ``Exclude`` extensions for ``Span<T>``