1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/timandy-linq

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 11:01 425a72c

Версия v6.0.0

Release notes

Синхронизация изменений с .net 6.

Новые возможности

  • Добавлен тип Index, указывающий на прямой или обратный индекс.
  • Добавлен тип Range, указывающий диапазон между начальным и конечным индексом Index.
  • Метод chunk() добавлен для поддержки нарезки фиксированным числом элементов.
  • Методы elementAt(Index) и elementAtOrDefault(Index) получили новые перегрузки для поддержки получения элемента по прямому или обратному индексу.
  • Методы firstOrDefault(), lastOrDefault() и singleOrDefault() получили новые перегрузки для поддержки возврата пользовательского значения по умолчанию, когда последовательность пуста.
  • Методы max(), maxBy(), min() и minBy() получили новые перегрузки для поддержки пользовательского компаратора.
  • Метод take(Range) получил новые перегрузки для поддержки извлечения элементов между начальным и конечным индексами Index.
  • Методы toMap() и toLinkedMap() получили новые перегрузки для указания ключа, который будет сохранён при конфликте.

Изменения

  • Изменён первый параметр методов exceptBy(...) и intersectBy(...), теперь это IEnumerable<? extends TKey> вместо IEnumerable<? extends TSource>.

Советы

  • Теперь методы skipLast() и takeLast() поддерживают изменяемую последовательность.

Ссылки


Версия v5.0.0

Release notes

Синхронизация изменений с .net 5.

Новые функции

  • Методы size() и isEmpty() добавлены для интерфейса ICollection.
  • Для метода split() добавлена опция StringSplitOptions.TrimEntries.
  • API zip() добавлен для преобразования трёх последовательностей в последовательность Tuple3.

Изменения

  • Улучшена производительность метода ArrayListEnumerable.toArray(Class clazz).
  • Оптимизировано выделение хеш-наборов для уменьшения количества операций resize. Это затронуло методы toMap, toLinkedMap, toSet, toLinkedSet.
  • В случае дублирования ключа сохраняется первое значение. Это затронуло методы toMap и toLinkedMap.
  • Вместо выброса исключения ArgumentNullException при нулевом значении источника возвращается пустая последовательность. Это затронуло методы of, as, chars, words, lines, split.

Советы

  • Чтобы уменьшить время сортировки, методы first(predicate) и firstOrDefault(predicate) после OrderedEnumerable вызывают предикат один раз для каждого элемента. Поэтому не вызывайте побочные методы в linq. См. https://github.com/dotnet/runtime/issues/31554.
  • Не используйте повторно ленивый результат skipLast и takeLast, если источник будет изменён. См. https://github.com/dotnet/runtime/pull/42506.

Ссылки


Версия v3.1.0

Функции

  • Поддержка настраиваемого отладочного представления для любого типа с помощью аннотаций DebuggerDisplay и DebuggerTypeProxy.

Изменения

  • Имя метода DebugView.getDebuggerDisplay(...) изменено на DebugView.getDebuggerDisplayText(...).
  • Имя метода DebugView.getDebuggerTypeProxy(...) изменено на DebugView.getDebuggerProxyObject(...).
  • Отладочное представление изменено для типов, подсчёт элементов которых обходится дёшево.

Ссылки


Версия v3.0.0

Release notes

Это первая стабильная версия, доступная для использования. Настоятельно рекомендуется обновить версию до этой, если вы использовали предыдущую.

Ошибки

  • Исправлены ошибки сравнения без знака.
  • Исправлены ошибки метода Lookup.ApplyResultSelector.
  • Исправлена ошибка метода OrderedEnumerableRangeEnumerator, которая не позволяла перебирать maxIdx.
  • Исправлена ошибка утверждения метода EnumerablePartition.
  • Исправлено двойное удаление внутреннего перечислителя методов CrossJoinIterator и SelectManyIterator.
  • Проверяется параметр селектора для метода sum с селектором.
  • Исправлена ошибка с select(...).count() на IPartition.
  • Исправлена ошибка со skip, take на... empty IOrderedEnumerable.
  • Fix union и unionBy не закрываются при прерывании итерации.

Особенности

  • Добавить zip Tuple api.
  • Добавить поддержку совместимого потока для IEnumerable.
  • Добавить api toLinkedList, toLinkedMap, toLinkedSet, toCollection для IEnumerable.
  • Добавить api indexOf, lastIndexOf для IEnumerable.
  • Добавить api findIndex, findLastIndex для IEnumerable.
  • Добавить api format, joining для IEnumerable для печати значений.
  • Добавить api ofNullable, chars, words, lines, split, infinite, loop, enumerate, iterate для Linq.
  • Добавить _indexOf и _lastIndexOf метод для IList.
  • Добавить _findIndex() и _findLastIndex() метод для IList.
  • Добавить интерфейс IArrayList, который расширяет RandomAccess для списка с произвольным доступом и IList для других.
  • Добавить интерфейс IArray для определения, содержит ли IArrayList массив или нет.
  • Добавить CultureInfo.setCurrent для установки текущего языкового стандарта для строковых действий в linq.
  • Добавить StringComparer для действий со строками: равно, хэш-код и сравнение.
  • Добавить ValueType как суперкласс для типа значения.
  • Добавить поддержку большего количества типов приведения к IEnumerable, таких как IEnumerable, Iterator и Enumeration.
  • Добавить Linq.as() для генерации IEnumerable из Object.
  • Добавить поддержку отладочного представления.
  • Добавить примитивный функциональный интерфейс.
  • Добавить ковариантную и контравариантную поддержку.

Оптимизация

  • Удалить переопределение runOnce() для IList.
  • Не копировать данные при приведении примитивного массива к IEnumerable.
  • Не создавать массив при приведении синглтона к IEnumerable.
  • Оптимизировать производительность takeLast.
  • Оптимизировать range().select() и repeat().select().
  • Оптимизировать производительность min, max, minBy, maxBy.
  • Оптимизировать действие удаления TakeLastIterator.
  • Оптимизировать методы toMap и toSet.
  • Оптимизировать indexOf и lastIndexOf в EqualityComparer.
  • Оптимизировать производительность skipLast.
  • Оптимизировать производительность, используя перечислитель вместо итератора.
  • Реализовать IIListProvider для DistinctByIterator, CrossJoinIterator, UnionByIterator.

Изменения

  • Перевести весь LINQ to Objects API .net core 3.0.
  • Использовать ThrowHelper для создания исключений.
  • Переименовать пакет bridge в adapter.
  • Переименовать Linq.asEnumerable() в Linq.of().
  • Переименовать TupleMore в TupleN.
  • Переименовать Linq.of(CharSequence) в Linq.chars(CharSequence).
  • Обновить версию junit до 5.x.
  • Обновить версию плагина до последней.
  • Изменить год авторских прав.

Параметры ковариантны

  • IEnumerable<T> (T ковариантен)
  • IEnumerator<T> (T ковариантен)
  • IGrouping<TKey, TElement> (TKey и TElement ковариантны)

Параметры контравариантны

  • Comparator<T> (T контравариантен)
  • Comparable<T> (T контравариантен)
  • IEqualityComparer<T> (T контравариантен)
  • IComparison<T> (T контравариантен)
  • Action<T1, T2, ... TN> (T1...TN контравариантны)
  • Func<T1, T2, ... TResult> (T1...TN контравариантны, TResult ковариантен)
  • Predicate<T1, T2, ... TN> (T1...TN контравариантны)

Ссылки

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/timandy-linq.git
git@api.gitlife.ru:oschina-mirror/timandy-linq.git
oschina-mirror
timandy-linq
timandy-linq
master