morelinq 3.0.0

This project enhances LINQ to Objects with the following methods: Acquire, AggregateRight, Append, Assert, AssertCount, AtLeast, AtMost, Await (EXPERIMENTAL), AwaitCompletion (EXPERIMENTAL), Backsert, Batch, Cartesian, Choose, CountBetween, CompareCount, CountBy, CountDown, Consume, DistinctBy, EndsWith, EquiZip, Exactly, ExceptBy, Exclude, FallbackIfEmpty, FillBackward, FillForward, Flatten, Fold, ForEach, From, FullGroupJoin, FullJoin, Generate, GenerateByIndex, GroupAdjacent, Index, Insert, Interleave, Lag, Lead, LeftJoin, MaxBy, Memoize, MinBy, Move, OrderBy, OrderedMerge, Pad, PadStart, Pairwise, PartialSort, PartialSortBy, Partition, Permutations, Pipe, Prepend, PreScan, Random, RandomDouble, RandomSubset, Rank, RankBy, Repeat, RightJoin, RunLengthEncode, Scan, ScanRight, Segment, Sequence, Shuffle, SkipLast, SkipUntil, Slice, SortedMerge, Split, StartsWith, Subsets, TagFirstLast, TakeEvery, TakeLast, TakeUntil, ThenBy, ToArrayByIndex, ToDataTable, ToDelimitedString, ToDictionary, ToHashSet, ToLookup, Trace, Transpose, TraverseBreadthFirst, TraverseDepthFirst, Unfold, Window, WindowLeft, WindowRight, ZipLongest, ZipShortest

There is a newer version of this package available.
See the version list below for details.
Install-Package morelinq -Version 3.0.0
dotnet add package morelinq --version 3.0.0
<PackageReference Include="morelinq" Version="3.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add morelinq --version 3.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: morelinq, 3.0.0"
#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 morelinq as a Cake Addin
#addin nuget:?package=morelinq&version=3.0.0

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

Usage

MoreLINQ can be used in one of two ways. The simplest is to just import the MoreLinq namespace and all extension methods become instantly available for you to use on the types they extend. In some very rare instances, however, this cause conflicts with other libraries you may be using that incidentally also extend the same type with an identically named method and signature. This happened with MoreLINQ, for example, when Microsoft .NET Framework 4.0 introduced Zip and MoreLINQ already had one. Starting with version 3.0 of MoreLINQ, you can reduce the potential for present (or even future) conflicts by individually importing just the extension methods you need using the static imports feature introduced in C# 6:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;

In the example above, only the Lag and Lead extension methods will be available in scope.

Apart from extension methods, MoreLINQ also offers regular static method that generate (instead of operating on) sequences, like Unfold, Random, Sequence and others. If you want to use these while statically importing other individual extension methods, you can do so via aliasing:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;
using MoreEnumerable = MoreLinq.MoreEnumerable;

In the example above, Lag and Lead will be available as extension methods as well as all the regular static methods on MoreEnumerable but without any of the extension methods offered by MoreEnumerable.

Usage

MoreLINQ can be used in one of two ways. The simplest is to just import the MoreLinq namespace and all extension methods become instantly available for you to use on the types they extend. In some very rare instances, however, this cause conflicts with other libraries you may be using that incidentally also extend the same type with an identically named method and signature. This happened with MoreLINQ, for example, when Microsoft .NET Framework 4.0 introduced Zip and MoreLINQ already had one. Starting with version 3.0 of MoreLINQ, you can reduce the potential for present (or even future) conflicts by individually importing just the extension methods you need using the static imports feature introduced in C# 6:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;

In the example above, only the Lag and Lead extension methods will be available in scope.

Apart from extension methods, MoreLINQ also offers regular static method that generate (instead of operating on) sequences, like Unfold, Random, Sequence and others. If you want to use these while statically importing other individual extension methods, you can do so via aliasing:

using static MoreLinq.Extensions.LagExtension;
using static MoreLinq.Extensions.LeadExtension;
using MoreEnumerable = MoreLinq.MoreEnumerable;

In the example above, Lag and Lead will be available as extension methods as well as all the regular static methods on MoreEnumerable but without any of the extension methods offered by MoreEnumerable.

Release Notes

Adds new operators: Await (EXPERIMENTAL), AwaitCompletion (EXPERIMENTAL), Backsert, Cartesian (overloads), CompareCount, Choose, CountDown, Memoize (EXPERIMENTAL), Transpose, ZipLongest (overloads), WindowLeft, WindowRight. See also: https://github.com/morelinq/MoreLINQ/releases/tag/v3.0.0

NuGet packages (195)

Showing the top 5 NuGet packages that depend on morelinq:

Package Downloads
Lykke.Common
Lykke common tools and utilities
Rocket.Core
RocketMod .NET Game Server Plugin Framework Core implementations
Ewl
The Enterprise Web Library (EWL), and its tailored infrastructure platform, are a complete and open solution for developing and operating web-based enterprise software.
SheshaMobile.Core
Common application functionality and features to be shared across the framework
Dox.Net.MsSqlBuilder
Database layer for Dox Objects

GitHub repositories (32)

Showing the top 5 popular GitHub repositories that depend on morelinq:

Repository Stars
QuantConnect/Lean
Lean Algorithmic Trading Engine by QuantConnect (C#, Python)
bchavez/Bogus
:card_index: A simple and sane fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.
ClosedXML/ClosedXML
ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API.
dotnet/Silk.NET
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Lunat1q/Catchem-PoGo
Project is DEAD, Discord server: https://discord.me/Catchem

Version History

Version Downloads Last updated
3.3.2 4,828,712 12/27/2019
3.3.1 120,754 12/13/2019
3.2.0 1,932,094 7/17/2019
3.1.1 1,132,076 4/5/2019
3.1.0 1,053,568 12/21/2018
3.0.0 1,420,831 6/29/2018
3.0.0-beta-2 4,201 5/17/2018
3.0.0-beta-1 10,773 4/10/2018
2.10.0 1,073,351 1/23/2018
2.9.0 210,811 12/22/2017
2.8.0 656,365 9/30/2017
2.7.0 179,650 8/31/2017
2.7.0-rc-1 840 8/28/2017
2.7.0-beta-1 1,049 8/23/2017
2.6.0 366,393 6/30/2017
2.5.0 107,125 5/31/2017
2.4.1 86,400 5/1/2017
2.4.0 3,808 4/30/2017
2.4.0-beta-02 1,635 4/21/2017
2.4.0-beta-01 2,193 4/13/2017
2.3.0 258,830 3/31/2017
2.2.0 155,787 2/24/2017
2.2.0-beta-1 1,025 2/19/2017
2.1.0 144,481 1/31/2017
2.0.0 146,129 12/23/2016
2.0.0-beta06 7,608 11/11/2016
2.0.0-beta05 11,553 9/28/2016
2.0.0-beta04 28,778 8/5/2016
2.0.0-beta03 31,178 2/18/2016
2.0.0-beta02 1,094 2/9/2016
2.0.0-beta01 1,062 2/1/2016
2.0.0-alpha01 36,516 6/27/2013
1.4.0 1,025,190 10/16/2015
1.3.0 27,805 10/2/2015
1.2.0 20,208 9/16/2015
1.1.1 156,661 5/19/2015
1.1.0 194,407 8/12/2014
1.0.16006 198,389 5/7/2013
1.0.15631-beta 2,101 1/31/2013
1.0.15416-beta 1,219 11/16/2012
1.0.11729-beta 1,004 11/9/2012
1.0.0 66,327 6/3/2011
Show less