Native LINQ for Typesctipt
Version: alpha-0.28
License: MIT License
- 28 LINQ methods
- implemented IEnumerator for javasctipt Array and Object
- maximum lazy evaluation
- only Typesctipt (maximum type-safety)
- fully tested (QUnit with d.ts)
var array = [2, 4, 6];
var enumerable = new EnumerableArray(array)
.where(item => item > 5);
console.log(enumerable.count()); // 1all(predicate: (item: T) => boolean): booleanany(predicate: (item: T) => boolean): booleanaverage(selector: (item: T) => number): numbercast<U>(type: IType<U>, strict: boolean = false): Enumerable<U>concat(secondEnumerable: Enumerable<T>): Enumerable<T>count(): numberdefaultIfEmpty(defaultValue: T = null): Enumerable<T>elementAt(index: number): TelementAtOrDefault(index: number, defaultValue: T = null): Tempty<T>(): Enumerable<T>first(predicate: (item: T) => boolean = () => true): TfirstOrDefault(predicate: (item: T) => boolean = () => true, defaultValue: T = null): Tlast(predicate: (item: T) => boolean = () => true): TlastOrDefault(predicate: (item: T) => boolean = () => true, defaultValue: T = null): Tmax(selector: (item: T) => number): numbermin(selector: (item: T) => number): numberofType<U>(type: IType<U>, strict: boolean = false): Enumerable<U>range(start: number, count: number): Enumerable<number>repeat<T>(element: T, count: number): Enumerable<T>select<U>(selector: (item: T) => U): Enumerable<U>sequenceEqual(secondEnumerable: Enumerable<T>): booleanskip(count: number): Enumerable<T>skipWhile(predicate: (item: T) => boolean): Enumerable<T>sum(selector: (item: T) => number): numbertake(count: number): Enumerable<T>takeWhile(predicate: (item: T) => boolean): Enumerable<T>toArray(): T[]where(predicate: (item: T) => boolean): Enumerable<T>