linq-ts v1.8.7
The library is a continuous effort to implement LINQ using latest features of TypeScript and JavaScript languages (For ES5 compatible library look at linq-es5 branch). The library is implemented in TypeScript and transpiled into JavaScript. It is distributed as a native module. It utilizes latest ECMAScript 2015 language specification: Iterables ( [System.iterator] ), generators (function*), for of loops. All relevant methods are implemented with deferred execution so no unnecessary iterations are performed. The code is backwards compatible with linq-es5 and C# implementations.
Using in Node
Install module with this command:
npm install linq-es2015 --save
Once installed it could be loaded and used like this:
import * as Enumerable from "linq-es2015";
var count = Enumerable.asEnumerable( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
.Where(a => a % 2 == 1)
.Count()
var iterable = Enumerable.asEnumerable(people)
.GroupJoin(pets,
person => person,
pet => pet.Owner,
(person, petCollection) => {
return {
Owner: person.Name,
Pets: asEnumerable(petCollection)
.Select(pet=> pet.Name)
.ToArray()
};
});
Using in browser
Browserified "standalone" UMD module is located in /dist
directory and could be accessed through NPM CDN service. Both linq.js and linq.min.js are available.
Module is loaded with <script>
element:
<script type="text/javascript" src="//unpkg.com/linq-es2015/dist/linq.min.js"></script>
Loading this script creates Enumerable
global variable. You can use it to perform LINQ queries:
var count = Enumerable.asEnumerable( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
.Where(a => a % 2 == 1)
.Count()
Using in Angular 2
The same package could be used on a server as well as on the client. You have to install module as usual:
npm install linq-es2015 --save
Open app.components.html
file and add element to hold calculated value:
<h1>{{title}}</h1>
<div>Count - {{count}}</div>
and finally import linq-es2015
in app.component.ts and do some calculations:
import { Component } from '@angular/core';
import { asEnumerable } from 'linq-es2015';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app works!';
count: number;
constructor(){
this.count = asEnumerable([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).Where(a => a % 2 == 1)
.Count();
}
}
Documentation
Example Projects
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago