import './array' import { Dictionary } from './dictionary' import * as enumerables from './enumerables' import { IEqualityComparer } from './equality-comparer' import { IGrouping } from './grouping' import { List } from './list' export interface IEnumerable extends Iterable { [Symbol.iterator](): IterableIterator All(predicate: (item: TSource) => boolean): boolean Any(predicate?: (item: TSource) => boolean): boolean AsEnumerable(): IEnumerable Average(selector?: (item: TSource) => number): number | null Concat(second: IEnumerable): IEnumerable Contains(value: TSource, comparer?: IEqualityComparer): boolean Count(predicate?: (item: TSource) => boolean): number DefaultIfEmpty(defaultValue?: IEnumerable): IEnumerable Distinct(comparer?: IEqualityComparer): IEnumerable ElementAt(index: number): TSource ElementAtOrDefault(defaultValue: TSource, index: number): TSource Except(second: IEnumerable, comparer?: IEqualityComparer): IEnumerable First(predicate?: (item: TSource) => boolean): TSource FirstOrDefault(defaultValue: TSource, predicate?: (item: TSource) => boolean): TSource GroupBy( keySelector: (item: TSource) => TKey, elementSelector?: (item: TSource) => TElement, comparer?: IEqualityComparer ): IEnumerable> GroupJoin }>( inner: IEnumerable, outerKeySelector: (item: TSource) => TKey, innerKeySelector: (item: TInner) => TKey, resultSelector?: (item: TSource, inners: IEnumerable) => TResult, comparer?: IEqualityComparer ): IEnumerable Intersect(second: IEnumerable, comparer?: IEqualityComparer): IEnumerable Join( inner: IEnumerable, outerKeySelector: (item: TSource) => TKey, innerKeySelector: (item: TInner) => TKey, resultSelector?: (item: TSource, inners: TInner) => TResult, comparer?: IEqualityComparer ): IEnumerable Last(predicate?: (item: TSource) => boolean): TSource LastOrDefault(defaultValue: TSource, predicate?: (item: TSource) => boolean): TSource Max(selector?: (item: TSource) => number): number | null Min(selector?: (item: TSource) => number): number | null Reverse(): IEnumerable Select(selector: (item: TSource, index?: number) => TResult): IEnumerable SelectMany( collectionSelector: (item: TSource, index?: number) => IEnumerable, resultSelector?: (item: TSource, collection: TCollection) => TResult ): IEnumerable SequenceEqual(second: Iterable, comparer?: IEqualityComparer): boolean Single(predicate?: (item: TSource) => boolean): TSource SingleOrDefault(defaultValue: TSource, predicate?: (item: TSource) => boolean): TSource Skip(count: number): IEnumerable SkipWhile(predicate: (item: TSource, index?: number) => boolean): IEnumerable Sum(selector?: (item: TSource) => number): number | null Take(count: number): IEnumerable TakeWhile(predicate: (item: TSource, index?: number) => boolean): IEnumerable ToArray(): Array ToDictionary( keySelector: (item: TSource) => TKey, elementSelector?: (item: TSource) => TElement, comparer?: IEqualityComparer ): Dictionary ToList(): List Union(second: Iterable, comparer?: IEqualityComparer): IEnumerable Where(predicate: (item: TSource, index?: number) => boolean): IEnumerable } export class Enumerable { public static AsEnumerable = enumerables.asEnumerable public static All = enumerables.all public static Any = enumerables.any public static Average = enumerables.average public static Concat = enumerables.concat public static Contains = enumerables.contains public static Count = enumerables.count public static DefaultIfEmpty = enumerables.defaultIfEmpty public static Distinct = enumerables.distinct public static ElementAt = enumerables.elementAt public static ElementAtOrDefault = enumerables.elementAtOrDefault public static Empty = enumerables.empty public static Except = enumerables.except public static First = enumerables.first public static FirstOrDefault = enumerables.firstOrDefault public static GroupBy = enumerables.groupBy public static GroupJoin = enumerables.groupJoin public static Intersect = enumerables.intersect public static Join = enumerables.join public static Last = enumerables.last public static LastOrDefault = enumerables.lastOrDefault public static Max = enumerables.max public static Min = enumerables.min public static Reverse = enumerables.reverse public static Select = enumerables.select public static SelectMany = enumerables.selectMany public static SequenceEqual = enumerables.sequenceEqual public static Single = enumerables.single public static SingleOrDefault = enumerables.singleOrDefault public static Skip = enumerables.skip public static SkipWhile = enumerables.skipWhile public static Sum = enumerables.sum public static Take = enumerables.take public static TakeWhile = enumerables.takeWhile public static ToArray = enumerables.toArray public static ToDictionary = enumerables.toDictionary public static ToList = enumerables.toList public static Union = enumerables.union public static Where = enumerables.where }