linq-collections-ts
v1.0.3
Published
**Collections-linq** – это LINQ-подобная библиотека для TypeScript.
Readme
Collections-linq
Collections-linq – это LINQ-подобная библиотека для TypeScript.
Установка
npm install collections-linq-tsИмпорт
import Enumerable from "collections-linq-ts";Интерфейсы
ICollection
Length(): numberВозвращает кол-во элементов в массивеAdd(item: T): voidДобавляет элемент в конец спискаRemove(item: T): booleanУдаляет элемент из спискаClear(): voidПолностью очищает списокContains(item: T): booleanПроверяет, находится ли элемент в списке
IEnumerable
Count(): numberWhere(predicate: (item: T) => boolean): Enumerable<T>Фильтрует элементы по условиюSelect<U>(selector: (item: T) => U): Enumerable<U>Определяет проекцию выбранных значенийSkip(count: number): Enumerable<T>Пропускает первые n элементовTake(count: number): Enumerable<T>Возвращает первые n элементыAll(predicate: (item: T) => boolean): booleanВозвращает true, если все элементы удовлетворяют условиюAny(predicate?: (item: T) => boolean): booleanВозвращает true, если хотя бы один элемент удовлетворяет условиюFirst(predicate?: (item: T) => boolean): TВозвращает первый элемент, удовлетворяющий условиюFirstOrDefault(predicate?: (item: T) => boolean, defaultValue?: T): T | nullВозвращает первый элемент, удовлетворяющий условию иначе defaultLast(predicate?: (item: T) => boolean): TВозвращает последний элемент, удовлетворяющий условиюLastOrDefault(predicate?: (item: T) => boolean, defaultValue?: T): T | nullВозвращает последний элемент, удовлетворяющий условию иначе defaultClone(sep?: number): Enumerable<T>Делает копию EnumerableToArray(): T[]Возвращает ArrayToList(): List<T>Возвращает копию Enumerable в новом ListToHashSet(): Enumerable<T>Возвращает копию Enumerable в новом HashSetToSet(): Set<T>Возвращает коллекцию SetForEach(action: (item: T) => void): voidПеребирает элементы и с каждым выполняет действиеMin(selector?: (item: T) => number): number | nullВозвращает минимальное значениеMax(selector?: (item: T) => number): number | nullВозвращает максильное значениеSum(selector?: (item: T) => number): numberВозвращает суммуCast<U>(): Enumerable<U>Приводит элементы к другому типуReverse(): Enumerable<T>Переворачивает коллекциюDistinct(): Enumerable<T>Возвращает новый Enumerable с уникальными элементамиOrderBy<K>(keySelector: (item: T) => K): Enumerable<T>Сортирует элементы по возрастаниюOrderByDescending<K>(keySelector: (item: T) => K): Enumerable<T>Сортирует элементы по убываниюThenBy<K>(keySelector: (item: T) => K): Enumerable<T>Добавляет вторичный ключ сортировки по возрастаниюThenByDescending<K>(keySelector: (item: T) => K): Enumerable<T>Добавляет вторичный ключ сортировки по убываниюGroupBy<K>(keySelector: (item: T) => K): Enumerable<[K, T[]]>Группирует элементы по ключу в map.Join<U, K, R>(inner: Iterable<U>, outerKey: (o: T) => K, innerKey: (i: U) => K, resultSelector: (o: T, i: U) => R): Enumerable<R>Выполняет соединение двух Enumerable по ключам
Классы
List
Length(): numberGet(index: number): TSet(index: number, value: T): voidAdd(item: T): voidRemove(item: T): booleanInsert(index: number, item: T): voidВставляет элемент в список по индексуClear(): voidCount(): numberIndexOf(item: T): numberВозвращает индекс в массивеLastIndexOf(item: T): numberВозвращает последний индекс элемента в массивеRemoveAt(index: number): TУдаляет элемент по индексуSort(comparer: (a: T, b: T) => number): Enumerable<T>Reverse(): Enumerable<T>Переворачивает список
LinkedList
Length(): numberGet(): LinkedListNode<T> | nullAdd(item: T): voidAddFirst(item: T): voidДобавляет элемент в началоAddLast(item: T): voidДобавляет элемент в конецRemove(item: T): booleanRemoveFirst(): T | nullУдаляет элемент из началаRemoveLast(): T | nullУдаляет элемент с концаContains(item: T): booleanClear(): void
Enumerable
static Range(start: number, count: number): Enumerable<number>Создает коллекцию чисел начиная с start, длиной countstatic Repeat(element: T, count: number): Enumerable<T>Создает коллекцию element, которая повторяется count разstatic From(src: Iterable<U>): Enumerable<U>Создает Enumerable из существующей коллекцииstatic Empty(): Enumerable<U>Возвращает пустой Enumerable
Пример
import Enumerable from "collections-linq-ts";
const nums = Enumerable.Range(1, 10)
.Where(x => x % 2 === 0)
.Select(x => x * x)
.ToArray();
const people = Enumerable.From([
{ name: "Alice", age: 30 },
{ name: "Bob", age: 20 },
{ name: "Charlie", age: 30 }
]);
const grouped = people
.GroupBy(p => p.age)
.ToArray();
const items = Enumerable.From([1, 2, 3]);
const odds = [1, 3, 5];
const joined = items.Join(
odds,
x => x,
y => y,
(x, y) => ({ x, y })
).ToArray(); 