linq-extensions
Version:
Linq-like extension methods for JavaScript and TypeScript builtin collections
21 lines • 859 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupingIterable = void 0;
const iterable_1 = require("../iterable");
const grouping_1 = require("../grouping/grouping");
class GroupingIterable extends iterable_1.Iterable {
constructor(originalIterable, keySelector, equalityCheck) {
super();
this.originalIterable = originalIterable;
this.keySelector = keySelector;
this.equalityCheck = equalityCheck;
}
*[Symbol.iterator]() {
const keys = this.originalIterable.select(this.keySelector).distinct(this.equalityCheck);
for (const key of keys) {
yield new grouping_1.Grouping(key, this.originalIterable.where(x => this.keySelector(x) === key));
}
}
}
exports.GroupingIterable = GroupingIterable;
//# sourceMappingURL=grouping-iterable.js.map