morelinq 3.1.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.1.0
dotnet add package morelinq --version 3.1.0
paket add morelinq --version 3.1.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

https://github.com/morelinq/MoreLINQ/releases/tag/v3.1.0

Version History

Version Downloads Last updated
3.1.1 10,514 4/5/2019
3.1.0 202,961 12/21/2018
3.0.0 545,381 6/29/2018
3.0.0-beta-2 3,047 5/17/2018
3.0.0-beta-1 6,187 4/10/2018
2.10.0 536,591 1/23/2018
2.9.0 71,556 12/22/2017
2.8.0 240,838 9/30/2017
2.7.0 96,421 8/31/2017
2.7.0-rc-1 317 8/28/2017
2.7.0-beta-1 476 8/23/2017
2.6.0 158,679 6/30/2017
2.5.0 75,209 5/31/2017
2.4.1 52,675 5/1/2017
2.4.0 1,451 4/30/2017
2.4.0-beta-02 829 4/21/2017
2.4.0-beta-01 1,555 4/13/2017
2.3.0 98,170 3/31/2017
2.2.0 74,164 2/24/2017
2.2.0-beta-1 480 2/19/2017
2.1.0 72,598 1/31/2017
2.0.0 59,569 12/23/2016
2.0.0-beta06 6,105 11/11/2016
2.0.0-beta05 4,959 9/28/2016
2.0.0-beta04 7,673 8/5/2016
2.0.0-beta03 9,845 2/18/2016
2.0.0-beta02 510 2/9/2016
2.0.0-beta01 496 2/1/2016
2.0.0-alpha01 24,313 6/27/2013
1.4.0 571,222 10/16/2015
1.3.0 21,413 10/2/2015
1.2.0 10,578 9/16/2015
1.1.1 98,095 5/19/2015
1.1.0 133,684 8/12/2014
1.0.16006 129,573 5/7/2013
1.0.15631-beta 1,258 1/31/2013
1.0.15416-beta 613 11/16/2012
1.0.11729-beta 404 11/9/2012
1.0.0 42,392 6/3/2011