@edsilv/exjs
Version:
Extension library
29 lines (27 loc) • 833 B
text/typescript
/// <reference path="enumerable.ts" />
namespace exjs {
function reverseEnumerator<T>(prev: IEnumerable<T>): IEnumerator<T> {
var a: T[];
var i = 0;
var e = {
current: undefined,
moveNext: function (): boolean {
if (!a) {
a = en(prev).toArray();
i = a.length;
}
i--;
e.current = a[i];
return i >= 0;
}
};
return e;
}
Enumerable.prototype.reverse = function<T>(): IEnumerableEx<T> {
var e = new Enumerable<T>();
e.getEnumerator = () => reverseEnumerator(<IEnumerable<T>>this);
return e;
};
if (List)
List.prototype.reverse = Enumerable.prototype.reverse;
}