Releases: timandy/linq
Releases · timandy/linq
Version 6.0.0
Release notes
Synchronize changes from .net 6.
Features
- Add type
Indexindicates a forward or reverse index. - Add type
Rangeindicates a range between start and endIndex. - Add new method
chunk()to support slicing by a fixed number of elements. - Add new overloads for
elementAt(Index)andelementAtOrDefault(Index)methods to support get element by forward or reverse index. - Add new overloads for
firstOrDefault(),lastOrDefault()andsingleOrDefault()methods to support return custom default value when sequence is empty. - Add new overloads for
max(),maxBy(),min()andminBy()methods to support custom comparer. - Add new overloads for
take(Range)method to support get elements between start and endIndex. - Add new overloads for
toMap()andtoLinkedMap()methods to specify which key to keep when conflicting.
Changes
- Modify first param type of methods
exceptBy(...)andintersectBy(...)fromIEnumerable<? extends TSource>toIEnumerable<? extends TKey>.
Tips
- Now
skipLast()andtakeLast()methods support mutable sequence.
Links
Version 5.0.0
Release notes
Synchronize changes from .net 5.
Features
- Add
size()andisEmpty()methods forICollectioninterface. - Add
StringSplitOptions.TrimEntriesforsplit()method. - Add
zip()api to cast three sequence into a Tuple3 sequence.
Changes
- Improve performance of method
ArrayListEnumerable.toArray(Class<TSource> clazz). - Optimize allocation of hash sets to reduce the number of
resizetimes. Effected methodstoMap,toLinkedMap,toSet,toLinkedSet. - Keep first value for duplicated key. Effected methods
toMap,toLinkedMap. - Return empty sequence instead of throw
ArgumentNullExceptionwhen source is null. Effected methodsof,as,chars,words,lines,split.
Tips
- In order to reduce sorting time, methods
first(predicate)andfirstOrDefault(predicate)afterOrderedEnumerablecall the predicate once per element.
So don't call side-effect methods in linq.
See dotnet/runtime#31554. - Don't reuse the lazy result of
skipLastandtakeLastwhen the source will be modified.
See dotnet/runtime#42506.
Links
Version 3.1.0
Release notes
Features
- Support custom debug view for any type by
DebuggerDisplay,DebuggerTypeProxyannotation.
Changes
- Rename
DebugView.getDebuggerDisplay(...)toDebugView.getDebuggerDisplayText(...). - Rename
DebugView.getDebuggerTypeProxy(...)toDebugView.getDebuggerProxyObject(...). - Modify debugger display for types which is cheap to count the elements.
Links
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.ApplyResultSelectorbugs. - Fix
OrderedEnumerableRangeEnumeratornot iterate maxIdx. - Fix
EnumerablePartitionerror assert. - Fix inner enumerator of
CrossJoinIteratorandSelectManyIteratordispose twice. - Fix not check selector param for
sumwith selector. - Fix bug with
select(...).count()on an IPartition. - Fix bug with
skip,takeon an empty IOrderedEnumerable. - Fix
unionandunionBynot close when break iterate.
Features
- Add
zipTuple api. - Add support compatible stream for
IEnumerable. - Add api
toLinkedList,toLinkedMap,toLinkedSet,toCollectionforIEnumerable. - Add api
indexOf,lastIndexOfforIEnumerable. - Add api
findIndex,findLastIndexforIEnumerable. - Add api
format,joiningforIEnumerableto print values. - Add api
ofNullable,chars,words,lines,split,infinite,loop,enumerate,iterateforLinq. - Add
_indexOfand_lastIndexOfmethod forIList. - Add
_findIndex()and_findLastIndex()method forIList. - Add
IArrayListinterface which extendsRandomAccessfor random access list andIListfor other. - Add
IArrayinterface to determineIArrayListcontains an array or not. - Add
CultureInfo.setCurrentto set current locale for string actions in linq. - Add
StringComparerfor string equals, hashCode and compare actions. - Add
ValueTypeas super class for value type. - Add support more type cast to IEnumerable like
IEnumerable,IteratorandEnumeration. - Add
Linq.as()to generateIEnumerablefromObject. - 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,maxByperformance. - Optimize
TakeLastIteratordispose action. - Optimize
toMapandtoSetmethods. - Optimize
indexOfandlastIndexOfin EqualityComparer. - Optimize
skipLastperformance. - Optimize performance by use enumerator instead of iterator.
- Implements
IIListProviderforDistinctByIterator,CrossJoinIterator,UnionByIterator.
Changes
- Translated all LINQ to Objects API of .net core 3.0.
- Use ThrowHelper to throw Exceptions.
- Rename package
bridgetoadapter. - Rename
Linq.asEnumerable()toLinq.of(). - Rename
TupleMoretoTupleN. - 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)
Links
Version 2.0.1
Release notes
Bugs
- Fix
firstfirstOrDefaultbugs.
Features
- Refactor from .net core 2.
- Performance improvement.
Links
Version 2.0.0
Release notes
Bugs
- Fix
Comparer.compare()bugs.
Features
- Translated all LINQ to Objects API of .net core 2.0.
- Add class
out,ref. - A lot of refactoring optimization has been done.
Changes
- Performance improvement.
- Update plugin to latest version.
Links
Version 1.0.1
Release notes
Bugs
- Fix Buffer count is zero throws NullPointerException.
Features
- Add API
distinctBy,unionBy,intersectBy,exceptBy,minBy,maxBy. - Support CI.
- Update logo.
Links
Version 1.0.0
Release notes
Features
- Translated all LINQ to Objects API of .net framework 4.7.
- Add unit test cases.
- Add API
leftJoin,rightJoin,fullJoin,crossJoin. - Support cast
CharSequencetoIEnumerable. - Add Tuple definitions.