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

OSCHINA-MIRROR/luckystarry-luckystarry-collections

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LuckyStarry-Collections

Имитация классов коллекций .NET с добавлением методов, подобных LINQ, таких как Select, Where и ToList.

Build Status Coverage Status Npm Status install size JSDelivr codebeat badge Known Vulnerabilities License Status
Build Status Coverage Status Npm Status install size JSDelivr codebeat badge Known Vulnerabilities License Status

Установка

Пакетная установка и использование

npm install -S luckystarry-collections

Для использования этого метода установки в проекте необходимо добавить следующий код в точку входа проекта, иначе невозможно расширить Array:

import 'luckystarry-collections'

Использование в браузере

<script src="https://cdn.jsdelivr.net/npm/luckystarry-collections/dist/index.min.js"></script>

Использование

Классы или интерфейсы

IEnumerable<T>

Перечисляемый набор элементов.

List<T> и IList<T>

Объекты списка и интерфейс списка.

Dictionary<TKey, TValue> и IDictionary<TKey, TValue>

Объект словаря и интерфейс словаря.

ReadOnlyCollection<T>

Коллекция только для чтения.

Array<T>

Массив.

Общие методы коллекций

All(predicate: (item: T) => boolean): boolean

Определяет, все ли элементы в коллекции удовлетворяют условию predicate. Если да, то возвращает true, иначе — false.

[1, 2, 3].All(x => x > 0)
// true

[1, 2, 3].All(x => x > 1)
// false

Any(predicate: (item: T) => boolean): boolean

Проверяет, есть ли в коллекции элемент, удовлетворяющий условию predicate. Если есть, то возвращает true, иначе — false.

[1, 2, 3].Any(x => x > 0)
// true

[1, 2, 3].Any(x => x > 1)
// true

[1, 2, 3].Any(x => x > 3)
// false

AsEnumerable(): IEnumerable<T>

Преобразует коллекцию объектов в форму интерфейса IEnumerable.

[1, 2, 3].AsEnumerable()
// [1, 2, 3]

Average(selector?: (item: T) => number): number | null

Вычисляет среднее значение данных в коллекции. Если коллекция не является числовой, используется selector для отображения числового значения каждого элемента.

[1, 2, 3].Average()
// 2

[1, 2, 3].Average(x => x * 2)
// 4

Concat(second: IEnumerable<T>): IEnumerable<T>

Объединяет две коллекции.

[1, 2, 3].Concat([3, 4, 5])
// [1, 2, 3, 3, 4, 5]

Contains(value: T, comparer?: IEqualityComparer<T>): boolean

Определяет, содержит ли коллекция элемент со значением value. Если comparer указан, сравнение выполняется с использованием этого компаратора равенства. Если элемент найден, возвращается true.

[1, 2, 3].Contains(2)
// true

Count(predicate?: (item: T) => boolean): number

Подсчитывает количество элементов в коллекции, которые удовлетворяют условию predicate, если оно указано. В противном случае подсчитывается общее количество элементов.

[1, 2, 3].Count()
// 3

[1, 2, 3].Count(x => x > 1)
// 2

DefaultIfEmpty(defaultValue?: IEnumerable<T>): IEnumerable<T>

Определяет, пуста ли коллекция. Если она пуста, возвращает defaultValue как новую коллекцию по умолчанию. Иначе возвращает новую коллекцию, содержащую все элементы исходной коллекции.

[1, 2, 3].DefaultIfEmpty()
// [1, 2, 3]

[].DefaultIfEmpty([1])
// [1]

Distinct(comparer?: IEqualityComparer<T>): IEnumerable<T>

Удаляет дубликаты из коллекции и позволяет использовать comparer для сравнения элементов на равенство.

[1, 2, 3].Distinct()
// [1, 2, 3]

[1, 2, 3, 3, 4].Distinct()
// [1, 2, 3, 4]

ElementAt(index: number): T

Извлекает элемент с индексом index из коллекции, начиная с нуля.

[1, 2, 3].ElementAt(1)
// 2

ElementAtOrDefault(defaultValue: T, index: number): T

Извлекает элемент с индексом index из коллекции, начиная с нуля, и возвращает defaultValue, если индекс выходит за пределы коллекции.

[1, 2, 3].ElementAtOrDefault(0, 1)
// 2

[1, 2, 3].ElementAtOrDefault(0, 3)
// 0

Except(second: IEnumerable<T>, comparer?: IEqualityComparer<T>): IEnumerable<T>

Исключает элементы из коллекции. First (предикат?: (элемент: T) => логическое значение): T

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

FirstOrDefaut (значение по умолчанию: T, предикат?: (элемент: T) => логическое значение): T

Из коллекции извлекается первый элемент, который удовлетворяет условию предиката, или возвращается значение по умолчанию, если элемент не найден.

GroupBy (keySelector: (элемент: T) => TKey, elementSelector?: (элемент: T) => TElement, comparer?: IEqualityComparer): IEnumerable<IGrouping<TKey, TElement>>

Каждый элемент коллекции группируется на основе значения, выбранного keySelector. Каждый элемент преобразуется с помощью elementSelector и объединяется в группу. Для сравнения ключей можно использовать comparer.

GroupJoin (внутренний: IEnumerable, outerKeySelector: (элемент: T) => TKey, innerKeySelector: (элемент: TInner) => TKey, resultSelector?: (элемент: T, внутренние: IEnumerable) => TResult, comparer?: IEqualityComparer): IEnumerable

Объединяет элементы двух коллекций на основе общих ключей.

Intersect (второй: IEnumerable, comparer?: IEqualityComparer): IEnumerable

Возвращает элементы, которые присутствуют в обеих коллекциях. Можно использовать comparer для сравнения элементов.

Join (inner: IEnumerable, outerKeySelector: (элемент: T) => TKey, innerKeySelector: (элемент: TInner) => TKey, resultSelector?: (элемент: T, inners: TInner) => TResult, comparer?: IEqualityComparer): IEnumerable

Объединяет два набора данных на основе соответствия ключей и значений.

Last (предикат?: (элемент: T) => логическое значение): T

Возвращается последний элемент коллекции, соответствующий условию предиката.

LastOrDefault (значение по умолчанию: T, предикат?: (элемент: T) => логическое значение): T

Если элемент соответствует условию предиката, то возвращается последний элемент. В противном случае возвращается значение по умолчанию.

Max (селектор?: (элемент: T) => число): число | null

Находит максимальное значение в коллекции. Если коллекция не числовая, используется селектор для преобразования элементов в числа.

Min (селектор?: (элемент: T) => число): число | null

Определяет минимальное значение в коллекции. Если коллекция не числовая, используется селектор для преобразования элементов в числа.

Reverse (): IEnumerable

Создаёт новую коллекцию с элементами исходной коллекции в обратном порядке.

Select (селектор: (элемент: T, индекс?: число) => TРезультат): IEnumerable<TРезультат>

Преобразует каждый элемент коллекции в новый элемент с помощью селектора.

SelectMany (collectionSelector: (элемент: T, индекс?: число) => IEnumerable, resultSelector?: (элемент: T, коллекция: TCollection) => TРезультат): IEnumerable<TРезультат>

Преобразует каждый элемент в коллекцию, а затем объединяет все коллекции в одну.

SequenceEqual (второй: Iterable, comparer?: IEqualityComparer): логическое значение

Проверяет, равны ли элементы двух коллекций и находятся ли они в одинаковом порядке. 4. SequenceEqual([1, 2, 3])

false

[1, 2, 3].SequenceEqual([3, 2, 1])

false

#### Single(predicate?: (item: T) => boolean): T
Из коллекции извлекается единственный элемент, который соответствует условию *predicate*. Если условие не задано, то возвращается единственный элемент коллекции. Если в коллекции несколько элементов, удовлетворяющих условию, генерируется исключение.
```typescript
[1].Single()
// 1

[1, 2, 3].Single(x => x > 2)
// 3

SingleOrDefault(defaultValue: T, predicate?: (item: T) => boolean): T

Из коллекции извлекается единственный элемент, соответствующий условию predicate, или значение по умолчанию defaultValue, если элемент не найден. Если условие не указано, то возвращается единственный элемент коллекции. В случае нескольких элементов, соответствующих условию, генерируется исключение.

[1].SingleOrDefault(0)
// 1

[1, 2, 3].SingleOrDefault(0, x => x > 2)
// 3

[1, 2, 3].SingleOrDefault(0, x => x > 3)
// 0

Skip(count: number): IEnumerable

Извлекаются все элементы коллекции, кроме первых count элементов.

[1, 2, 3].Skip(1)
// [2, 3]

SkipWhile(predicate: (item: T, index?: number) => boolean): IEnumerable

Все элементы коллекции, которые соответствуют условию predicate, пропускаются. Остальные элементы формируют новую коллекцию.

[1, 2, 3].SkipWhile(x => x < 2)
// [2, 3]

Sum(selector?: (item: T) => number): number | null

Вычисляется сумма всех значений в коллекции. Для нечисловых коллекций используется функция selector для преобразования каждого элемента в число.

[1, 2, 3].Sum()
// 6

[1, 2, 3].Sum(x => x * 2)
// 12

Take(count: number): IEnumerable

Первые count элементов коллекции формируют новую коллекцию.

[1, 2, 3].Take(2)
// [1, 2]

TakeWhile(predicate: (item: T, index?: number) => boolean): IEnumerable

Формируется новая коллекция из элементов исходной коллекции, пока выполняется условие predicate.

[1, 2, 3].TakeWhile(x => x < 2)
// [1]

ToArray(): Array

Элементы коллекции помещаются в новый массив.

[1, 2, 3].ToArray()
// [1, 2, 3]

ToDictionary<TKey, TElement = T>(keySelector: (item: T) => TKey, elementSelector?: (item: T) => TElement, comparer?: IEqualityComparer): Dictionary

Создаётся новый словарь, где каждый элемент исходной коллекции становится ключом, а значение определяется функцией elementSelector. Если она не указана, значением будет сам элемент.

[1, 2, 3].ToDictionary(x => x)
// [{1, 1}, {2, 2}, {3, 3}]

ToList(): List

Элементы коллекции помещаются в новый список.

[1, 2, 3].ToList()
// [1, 2, 3]

Union(second: Iterable, comparer?: IEqualityComparer): IEnumerable

Объединяются две коллекции и удаляются повторяющиеся элементы. Сравнение элементов выполняется с помощью функции comparer.

[1, 2, 3].Union([3, 4, 5])
// [1, 2, 3, 4, 5]

Where(predicate: (item: T, index?: number) => boolean): IEnumerable

В новую коллекцию помещаются только те элементы исходной коллекции, которые удовлетворяют условию predicate.

[1, 2, 3].Where(x => x > 1)
// [2, 3]

Комментарии ( 0 )

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

Введение

Имитаторы классов коллекций .NET. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/luckystarry-luckystarry-collections.git
git@api.gitlife.ru:oschina-mirror/luckystarry-luckystarry-collections.git
oschina-mirror
luckystarry-luckystarry-collections
luckystarry-luckystarry-collections
master