Chat on Gitter CI build status NuGet package (stable) MyGet package (unstable)

LINQ to Objects is missing a few desirable features. This project enhances LINQ to Objects with extra methods, in a manner which keeps to the spirit of LINQ.

MoreLINQ is available for download and installation as NuGet packages.

A good way to get familiar with MoreLINQ is to explore the introductory series (below), by Mark Heath.

Following is a short demonstration video by Dmitri Nesteruk:

Documentation

Contributors

Contributors

Introductory Series, by Mark Heath

Exploring MoreLINQ Part 1 - Zipping; covers EquiZip, ZipLongest, ZipShortest
Exploring MoreLINQ Part 2 - Counting Elements; covers AtLeast, AtMost, Exactly, CountBetween, AssertCount
Exploring MoreLINQ Part 3 - MinBy and MaxBy
Exploring MoreLINQ Part 4 - Combinations; covers Permutations, Subset, Cartesian
Exploring MoreLINQ Part 5 - Scan; includes ScanRight, PreScan
Exploring MoreLINQ Part 6 - Taking; covers TakeLast, TakeUntil and TakeEvery
Exploring MoreLINQ Part 7 - Batching; covers Batch
Exploring MoreLINQ Part 8 - FallbackIfEmpty
Exploring MoreLINQ Part 9 - FillForward; includes FillBackward
Exploring MoreLINQ Part 10 - Interleave
Exploring MoreLINQ Part 11 - Padding; covers PadStart, Pad
Exploring MoreLINQ Part 12 - Run Length Encoding; covers RunLengthEncode
Exploring MoreLINQ Part 13 - Random Sequences; covers Random, RandomDouble, RandomSubset, Shuffle
Exploring MoreLINQ Part 14 - Skipping and Slicing; covers SkipUntil, SkipLast, Slice
Exploring MoreLINQ Part 15 - Windowing; covers Window, WindowLeft, WindowRight
Exploring MoreLINQ Part 16 - Pairwise and Resolving Ambiguities
Exploring MoreLINQ Part 17 - CountBy
Exploring MoreLINQ Part 18 - GroupAdjacent and Segment
Exploring MoreLINQ Part 19 - Generating sequences; covers Generate, GenerateByIndex, Repeat, Sequence, Unfold
Exploring MoreLINQ Part 20 - ToDelimitedString (and friends); includes ToDictionary, ToHashSet, ToArrayByIndex
Exploring MoreLINQ Part 21 - Side Effects; covers Trace, Pipe, ForEach, Consume
Exploring MoreLINQ Part 22 - Append and Prepend; includes Insert, Backsert
Exploring MoreLINQ Part 23 - Joining; covers RightJoin, LeftJoin, FullJoin, FullGroupJoin
Exploring MoreLINQ Part 24 - Flatten
Exploring MoreLINQ Part 25 - Traverse; covers TraverseBreadthFirst, TraverseDepthFirst