StSchnell / linq

linq.js - LINQ for JavaScript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

linq

This is a JavaScript implementation of the .NET LINQ library.
It contains all the original .NET methods plus a few additions and it is written in pure JavaScript with no dependencies.
This is a fork with the addition to use linq with the Rhino JavaScript engine.

Examples

// C# LINQ - delegate
Enumerable.Range(1, 10)
    .Where(delegate(int i) { return i % 3 == 0; })
    .Select(delegate(int i) { return i * 10; });

// linq.js - anonymous function
Enumerable.range(1, 10)
    .where(function(i) { return i % 3 == 0; })
    .select(function(i) { return i * 10; });
// C# LINQ - lambda
Enumerable.Range(1, 10).Where((i) => i % 3 == 0).Select((i) => i * 10);

// linq.js - arrow function
Enumerable.range(1, 10).where((i) => i % 3 == 0).select((i) => i * 10);
// C# LINQ - anonymous type
array.Select((val, i) => new { Value: val, Index: i }());

// linq.js - object literal
Enumerable.from(array).select((val, i) => ({ value: val, index: i }));

See sample/tutorial.js and the test folder for more examples.

Usage

Rhino

This engine is programmed in Java and generates a class from the compiled JavaScript code. It was bundled with Java SE 6 and used as a programming interface in some business products. Rhino can be used with Java 8 and above and is mostly compatible with the ECMAScript 5 standard. To use linq with Rhino, download the latest linq release and modify it as it is described here.

After these preparations you can load it in your code with load command and use it:

load("linq.class.js");
var result = Enumerable.range(1, 10)
  .where( function(i) { return i % 3 == 0 } )
  .select( function(i) { return i * 10 } );
java.lang.System.out.println(
  JSON.stringify(result.toArray())
); // [ 30, 60, 90 ]

Credits

Yoshifumi Kawai developed the original version of this library.

License

MIT License

About

linq.js - LINQ for JavaScript

License:MIT License


Languages

Language:JavaScript 99.8%Language:Batchfile 0.2%