Version 3.0.0
Release notes
This is the first stable version available for production. It is highly recommended to upgrade to this version if you have used a previous version.
Bugs
- Fix unsigned compare bugs.
- Fix
Lookup.ApplyResultSelector
bugs. - Fix
OrderedEnumerableRangeEnumerator
not iterate maxIdx. - Fix
EnumerablePartition
error assert. - Fix inner enumerator of
CrossJoinIterator
andSelectManyIterator
dispose twice. - Fix not check selector param for
sum
with selector. - Fix bug with
select(...).count()
on an IPartition. - Fix bug with
skip
,take
on an empty IOrderedEnumerable. - Fix
union
andunionBy
not close when break iterate.
Features
- Add
zip
Tuple api. - Add support compatible stream for
IEnumerable
. - Add api
toLinkedList
,toLinkedMap
,toLinkedSet
,toCollection
forIEnumerable
. - Add api
indexOf
,lastIndexOf
forIEnumerable
. - Add api
findIndex
,findLastIndex
forIEnumerable
. - Add api
format
,joining
forIEnumerable
to print values. - Add api
ofNullable
,chars
,words
,lines
,split
,infinite
,loop
,enumerate
,iterate
forLinq
. - Add
_indexOf
and_lastIndexOf
method forIList
. - Add
_findIndex()
and_findLastIndex()
method forIList
. - Add
IArrayList
interface which extendsRandomAccess
for random access list andIList
for other. - Add
IArray
interface to determineIArrayList
contains an array or not. - Add
CultureInfo.setCurrent
to set current locale for string actions in linq. - Add
StringComparer
for string equals, hashCode and compare actions. - Add
ValueType
as super class for value type. - Add support more type cast to IEnumerable like
IEnumerable
,Iterator
andEnumeration
. - Add
Linq.as()
to generateIEnumerable
fromObject
. - Add debug view support.
- Add primitive functional interface.
- Add covariant & contravariant support.
Optimizations
- Remove override runOnce() for
IList
. - Not copy data when cast primitive array to IEnumerable.
- Not create array when cast singleton to IEnumerable.
- Optimize performance of
takeLast
. - Optimize
range().select()
andrepeat().select()
. - Optimize
min
,max
,minBy
,maxBy
performance. - Optimize
TakeLastIterator
dispose action. - Optimize
toMap
andtoSet
methods. - Optimize
indexOf
andlastIndexOf
in EqualityComparer. - Optimize
skipLast
performance. - Optimize performance by use enumerator instead of iterator.
- Implements
IIListProvider
forDistinctByIterator
,CrossJoinIterator
,UnionByIterator
.
Changes
- Translated all LINQ to Objects API of .net core 3.0.
- Use ThrowHelper to throw Exceptions.
- Rename package
bridge
toadapter
. - Rename
Linq.asEnumerable()
toLinq.of()
. - Rename
TupleMore
toTupleN
. - Rename
Linq.of(CharSequence)
toLinq.chars(CharSequence)
. - Update junit version to 5.x.
- Update plugin version to latest.
- Change the year of copyright.
Parameters covariant
- IEnumerable (T is covariant)
- IEnumerator (T is covariant)
- IGrouping<TKey, TElement> (TKey and TElement are covariant)
Parameters contravariant
- Comparator (T is contravariant)
- Comparable (T is contravariant)
- IEqualityComparer (T is contravariant)
- IComparison (T is contravariant)
- Action<T1, T2, ... TN> (T1...TN are contravariant)
- Func<T1, T2, ... TResult> (T1...TN are contravariant, TResult is covariant)
- Predicate<T1, T2, ... TN> (T1...TN are contravariant)