Faslinq 1.0.5

Install-Package Faslinq -Version 1.0.5
dotnet add package Faslinq --version 1.0.5
<PackageReference Include="Faslinq" Version="1.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Faslinq --version 1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Faslinq, 1.0.5"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Faslinq as a Cake Addin
#addin nuget:?package=Faslinq&version=1.0.5

// Install Faslinq as a Cake Tool
#tool nuget:?package=Faslinq&version=1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Faslinq

Documentation

High-Performance Linq-Like extension methods for arrays and List<T> that avoid unnecessary allocations.

This is nowhere near ready for production, but I was recently reading about how Linq does allocations all over the places as well as multiple enumerations and that marshalling List<T> through IEnumerable<T> causes Enumerators that live in the stack to be pushed to the heap and thus cause more garbage collection. The solution is to use List<T> whenever possible and T[] to avoid unnecessary heap allocations.

I also was thinking about typical use cases, such as Where().Select()[.Take()] chains that are so common and created new "combo" extension methods like SelectWhere, SelectTake, SelectWhereTake, etc that use a single loop to do all the work.


List<TData> data = GetFromSource<TData>();

var result = data.Where(d => d.Prop1 == 1).Select(d => (d.Prop1, d.Prop2)).Take(10).ToList();

// becomes

var result = data.SelectWhereTake(10, d => d.Prop1 == 1, d => (d.Prop1, d.Prop2));
  • .NETStandard 2.0

  • .NETStandard 2.1

    • No dependencies.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Faslinq:

Repository Stars
NetFabric/LinqBenchmarks
Benchmarking LINQ and alternative implementations
Version Downloads Last updated
1.0.5 200 10/6/2021
1.0.0 150 10/6/2021