UNPKG

ts-generic-collections-linq

Version:

TypeScript library provides strongly-typed, queryable collections.

48 lines (47 loc) 2.26 kB
import { IEnumerable, IComparer, IEqualityComparer } from './interfaces'; import { Group } from './common'; export interface IList<T> extends IEnumerable<T> { add(item: T): void; addRange(items: T[]): void; remove(predicate: (item: T) => boolean): void; removeAt(index: number): void; clear(): void; } export declare class List<T> implements IList<T> { private list; constructor(array?: Array<T>); add(item: T): void; addRange(items: T[]): void; remove(predicate: (item: T) => boolean): void; removeAt(index: number): void; clear(): void; asEnumerable(): IEnumerable<T>; readonly length: number; elementAt(index: number): T; any(predicate?: (item: T) => boolean): boolean; all(predicate?: (item: T) => boolean): boolean; single(predicate?: (item: T) => boolean): T; first(predicate?: (item: T) => boolean): T; last(predicate?: (item: T) => boolean): T; singleOrDefault(predicate: (item: T) => boolean): T; firstOrDefault(predicate: (item: T) => boolean): T; lastOrDefault(predicate: (item: T) => boolean): T; where(predicate: (item: T) => boolean): IEnumerable<T>; select<TResult>(predicate: (item: T) => TResult): IEnumerable<TResult>; forEach(predicate: (item: T) => void): void; toArray(): Array<T>; join<TOuter, TMatch, TResult>(outer: IEnumerable<TOuter>, conditionInner: (item: T) => TMatch, conditionOuter: (item: TOuter) => TMatch, select: (x: T, y: TOuter) => TResult, leftJoin?: boolean): IEnumerable<TResult>; groupBy(predicate: (item: T) => Array<any>): IEnumerable<Group<T>>; selectMany<TResult>(predicate: (item: T) => Array<TResult>): IEnumerable<TResult>; orderBy(comparer: IComparer<T>): IEnumerable<T>; union(list: IEnumerable<T>): IEnumerable<T>; reverse(): IEnumerable<T>; distinct(comparer: IEqualityComparer<T>): IEnumerable<T>; skip(no: number): IEnumerable<T>; take(no: number): IEnumerable<T>; sum(predicate: (item: T) => number): number; avg(predicate: (item: T) => number): number; min(predicate: (item: T) => number): number; max(predicate: (item: T) => number): number; count(predicate?: (item: T) => boolean): number; }