Bot releases are hidden (Show)
This is a bug fix and maintenance release.
Merge
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1059 🪲Published by atifaziz 11 months ago
Duplicates
Subsets
to-do about clearer members names by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1048
RandomSubset
internals for DRY, removing closure by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/1049
this
qualifier by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1050
Duplicates
extension by @julienasp in https://github.com/morelinq/MoreLINQ/pull/1037
ToDictionary()
in net8+ by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/1040
EqualityComparer<T>.Create
from .NET 8 by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1051
Subsets
core into an iterator method by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1052
Permutations
into an iterator method by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1054
Published by atifaziz 12 months ago
This release introduces an experimental version of Batch
that allows use of an array pool for batches, which can especially help reduce (potentially LOH) allocations for very large batch sizes.
New aliases are introduced for the following existing methods because they conflicted with identically named methods introduced in .NET 6.0, but which differ in definition and behaviour:
The superseded methods have been marked obsolete and will most probably be removed in a future version. For more details, see #1018.
In a similar vein, this release also retires the following extension methods that are now part of .NET proper and which have identical names and behaviour:
Append
Batch
Concat
DistinctBy
Prepend
SkipLast
TakeLast
ToHashSet
This helps to prevent ambiguity errors during compilation when System.Linq
and MoreLinq
namespaces are imported together in a file or a namespace. The retirement is done such that the above methods appear as regular static methods rather than extension methods depending on the compilation target. This helps to maintain source as well as binary compatibility. Special thanks to @viceroypenguin for helping with this (see #945 for more details). The upshot is that projects that prefer to import the MoreLinq
namespace rather than individual extensions can simply do so without running into ambiguity compilation errors. However, do bear in mind that this does not prevent future conflicts from appearing should more of MoreLINQ's methods find their way into .NET.
Since this a major release, some source and binary breaking changes that are listed below were introduced. Please read the details to see if you're affected.
Interleave
shouldn't validate otherSequences
members https://github.com/morelinq/MoreLINQ/issues/1029
Minima
& Maxima
to supersede MinBy
& MaxBy
https://github.com/morelinq/MoreLINQ/issues/1018
Windowed
that's been obsolete since 3.0 https://github.com/morelinq/MoreLINQ/issues/1016
Concat
that's been obsolete since 3.0 https://github.com/morelinq/MoreLINQ/issues/993
ToDataTable
cannot be null https://github.com/morelinq/MoreLINQ/issues/802
Subsets(0)
should return an empty set https://github.com/morelinq/MoreLINQ/issues/645
Batch
should return IEnumerable<T[]>
https://github.com/morelinq/MoreLINQ/issues/98
Concat
method by @pflajszer in https://github.com/morelinq/MoreLINQ/pull/1002
FillForward
when filler is null
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1006
ToDataTable
paths by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1007
ToDataTable
implementation by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1008
SortedMerge
: Test do not call MoveNext
eagerly by @Orace in https://github.com/morelinq/MoreLINQ/pull/735
EnableGenerateDocumentationFile
warning as workaround for IDE0005 by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1013
Batch
to return arrays by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1014
Subsets
so it returns an empty set when k = 0 by @Orace in https://github.com/morelinq/MoreLINQ/pull/646
Windowed
that's superseded by Window
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1017
expressions
argument of ToDataTable
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1021
Minima
& Maxima
as successors to MinBy
& MaxBy
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1019
otherSequences
argument of Interleave
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1031
Pad
/PadStart
width is invalid by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/1030
Published by atifaziz over 1 year ago
This is a bug fix and maintenance release.
Unfold
bug so iterations are repeatable by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/991 🪲Published by atifaziz over 1 year ago
This is a bug fix and maintenance release.
Permutations
for when source length is >12 by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/979 🪲Published by atifaziz over 1 year ago
This release notably adds nullable reference type annotations (see #582 and #803), the two experimental operators below and fixes a few bugs:
Merge
(experimental)Batch
overloads using an array pool (experimental)While there are no breaking API changes in this release, the following changes will affect users using on .NET versions that have reached end-of-life:
OrderedMerge
: add tests by @Orace in https://github.com/morelinq/MoreLINQ/pull/736
IReadOnlyCollection<T>
too by @leandromoh in https://github.com/morelinq/MoreLINQ/pull/750
Interleave
: Do not call GetEnumerator
eagerly by @Orace in https://github.com/morelinq/MoreLINQ/pull/730
LastOrDefault
for extrema sequence by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/761
MinBy
/MaxBy
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/765
System.Linq
for async streams by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/781
TrySingle
signature with honest nullable annotations by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/801
FallbackIfEmpty
by @sid-6581 in https://github.com/morelinq/MoreLINQ/pull/808
Pad*
signatures with more honest nullable annotations by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/804
Lag
& Lead
signatures with more honest nullable annotations by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/805
ReverseComparer
signature with more honest nullable annotations by @sid-6581 in https://github.com/morelinq/MoreLINQ/pull/807
GroupAdjacent
null key handling bug by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/810
FullGroupJoin
signature with more honest nullable annotations by @sid-6581 in https://github.com/morelinq/MoreLINQ/pull/806
Batch
does not reuse internal array by @leandromoh in https://github.com/morelinq/MoreLINQ/pull/820
README
by @GitHubPang in https://github.com/morelinq/MoreLINQ/pull/828
null
check in Batch
method by @MateoMiller in https://github.com/morelinq/MoreLINQ/pull/846
Flatten
signature parts to be null-oblivious by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/847
Batch
overload by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/849
ToDictionary
to notnull
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/852
CountBy
/ScanBy
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/855
+=
to increment by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/869
MayBeNull
with ?
in IExtremaEnumerable
members by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/872
Flatten
tests by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/875
Lookup
+ Grouping
from .NET 7 sources by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/879
Batch
overloads using an array pool by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/856
#nullable
enable on tests by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/888
Subject
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/891
Memoize
documentation by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/895
Partition
by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/897
Partition
exceptions by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/886
Partition
by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/896
Memoize
as expression by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/894
Partition
Nullability by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/881
Zip*
docs by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/887
ZipLongest
by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/900
*Zip*
tests by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/908
Rank
comparer argument by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/913
ToDataTable
expressions argument by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/914
!
with debug assertion in Permutations
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/917
LinkedList
in Interleave
to avoid many null checks by @Orace in https://github.com/morelinq/MoreLINQ/pull/726
Interleave
tests by @Orace in https://github.com/morelinq/MoreLINQ/pull/728
Comparer
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/921
Permutations
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/925
AssertCount
and Fold
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/929
TagFirstLast
by @Orace in https://github.com/morelinq/MoreLINQ/pull/928
ToArrayByIndex
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/932
TagFirstLast
implementation for speed by @Orace in https://github.com/morelinq/MoreLINQ/pull/643
Pairwise
test by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/937
Exclude
to not call MoveNext
past end of sequence by @Orace in https://github.com/morelinq/MoreLINQ/pull/692
CountDown
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/942
ListLike
/CollectionLike
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/948
TestingSequence
assertions by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/936
*Like
types by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/949
message
in Debug.Assert
by @i3arnon in https://github.com/morelinq/MoreLINQ/pull/959
ToDelimitedString
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/966
Batch
by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/965
Fold
Implementation by @viceroypenguin in https://github.com/morelinq/MoreLINQ/pull/961
Fold
doc by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/968
Fold
entirely in its own terms by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/969
ToDelimitedString
) by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/971
AssertCount
by @atifaziz in https://github.com/morelinq/MoreLINQ/pull/972
Published by atifaziz almost 5 years ago
This is a minor bug fix release that primarily addresses a regression with Batch
that was introduced in version 3.3.1.
Published by atifaziz almost 5 years ago
And lots of bug fixes. 🐛
Published by atifaziz over 5 years ago
Aggregate
(a second design based on accumulator comprehensions lives in the experimental namespace)IndexBy
ScanBy
IDisposable.Dispose
implementations are meant to ignore all calls after the first so this change should have no compatibility issues.Published by atifaziz over 5 years ago
This is bug fix release that addresses issue #564.
For a more detailed list of changes in this release, see:
Published by atifaziz almost 6 years ago
This release primarily adds a new overload for Flatten
.
For a more detailed list of changes in this release, see:
Published by atifaziz over 6 years ago
Append
(previously Concat
)Await
(experimental)AwaitCompletion
(experimental)Backsert
Cartesian
(new overloads)Choose
CompareCount
CountDown
Memoize
(experimental)Transpose
Window
(previously Windowed
)WindowLeft
WindowRight
ZipLongest
(new overloads)These methods are now obsolete: ⚠️
For a complete list and details, see issues tagged as breaking changes in the 3.0 milestones, including those in 3.0 beta 1 and 3.0 beta 2.
Extension methods removed in this release:
Incremental
(#242)NestedLoops
(#462)SingleOrFallback
(#388)ToDelimitedString
overloads taking zero arguments; i.e. delimiter is now always required (#229)Release 3.0 drops builds for all version of .NET Framework earlier than 4.5.1 (#379, #329).
Published by atifaziz over 6 years ago
AwaitCompletion
(experimental)Choose
CountDown
Memoize
(experimental)For a complete list and details, see issues tagged as breaking changes in the 3.0 beta 1 and beta 2 milestones.
Release 3.0 drops builds for all version of .NET Framework earlier than 4.5.1 (#379, #329).
Extension methods removed in this release:
NestedLoops
(#462)Published by atifaziz over 6 years ago
Await
(experimental)CompareCount
Transpose
For a complete list and details, see issues tagged as breaking changes in the 3.0 beta 1 milestone.
Release 3.0 drops builds for all version of .NET Framework earlier than 4.5.1 (#379, #329).
Extension methods removed in this release:
Incremental
(#242)SingleOrFallback
(#388)ToDelimitedString
overloads taking zero arguments; i.e. delimiter is now always required (#229)Published by atifaziz over 6 years ago
Adds new operator:
See also:
Published by atifaziz almost 7 years ago
Published by atifaziz about 7 years ago
Adds new operators:
See also:
Published by atifaziz about 7 years ago
This release adds .NET Standard 2.0 as a target (see #343 for more).
Adds new operators:
See also:
Published by atifaziz over 7 years ago
Adds new operators:
PadStart
FullGroupJoin
(new overloads)See also:
Published by atifaziz over 7 years ago
Adds new operators:
ScanRight
ToArrayByIndex
See also: