Using LINQ library

LINQ (Language-Integrated Query)

by Eugene Sadovoi

HTML

<script src="https://npmcdn.com/linq-es5/dist/linq.js"></script>
<h1>Using Library</h1>
<p>To use library in Browser <span class="pl-s">npmcdn.com/linq-es5/dist/linq.js</span> or <span class="pl-s">npmcdn.com/linq-es2015/dist/linq.js</span> must be added to the page.</p>

<p>Once loaded it creates <span class="pl-k">Enumerable</span> global variable which is used to access functionality.</p>
<p><span class="pl-k">Enumerable</span> exposes following functions: <span class="pl-sr">Range, Repeat, and asEnumerable</span></p>

<p>Lets generate array of 15 numbers strating from 0. <br/>Example: <span id="array" class="pl-sr"></span></p>

<p>Now, lets filter even numbers out <br/>Example:  <span id="odd" class="pl-sr"></span></p>

<p>Now count odd numbers in the array: <span class="pl-sr" id="result">0</span></p>

<p>Or you could do it all at once: <span class="pl-sr" id="allatonce">0</span></p>

CSS

.pl-c /* comment */ {
  color: #969896;
}

.pl-c1 /* constant, variable.other.constant, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header */,
.pl-s .pl-v /* string variable */ {
  color: #0086b3;
}

.pl-e /* entity */,
.pl-en /* entity.name */ {
  color: #795da3;
}

.pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */,
.pl-s .pl-s1 /* string source */ {
  color: #333;
}

.pl-ent /* entity.name.tag */ {
  color: #63a35c;
}

.pl-k /* keyword, storage, storage.type */ {
  color: #a71d5d;
}

.pl-s /* string */,
.pl-pds /* punctuation.definition.string, string.regexp.character-class */,
.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
.pl-sr /* string.regexp */,
.pl-sr .pl-cce /* string.regexp constant.character.escape */,
.pl-sr .pl-sre /* string.regexp source.ruby.embedded */,
.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ {
  color: #183691;
}

.pl-v /* variable */ {
  color: #ed6a43;
}

.pl-id /* invalid.deprecated */ {
  color: #b52a1d;
}

.pl-ii /* invalid.illegal */ {
  color: #f8f8f8;
  background-color: #b52a1d;
}

.pl-sr .pl-cce /* string.regexp constant.character.escape */ {
  font-weight: bold;
  color: #63a35c;
}

.pl-ml /* markup.list */ {
  color: #693a17;
}

.pl-mh /* markup.heading */,
.pl-mh .pl-en /* markup.heading entity.name */,
.pl-ms /* meta.separator */ {
  font-weight: bold;
  color: #1d3e81;
}

.pl-mq /* markup.quote */ {
  color: #008080;
}

.pl-mi /* markup.italic */ {
  font-style: italic;
  color: #333;
}

.pl-mb /* markup.bold */ {
  font-weight: bold;
  color: #333;
}

.pl-md /* markup.deleted, meta.diff.header.from-file */ {
  color: #bd2c00;
  background-color: #ffecec;
}

.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ {
  color: #55a532;
  background-color: #eaffea;
}

.pl-mdr /* meta.diff.range */ {
  font-weight: bold;
  color:...

JavaScript

// To play with the library add code here

var array = Enumerable.Range(0, 15).ToArray();  // Generate test array from range
var range = Enumerable.asEnumerable( array );		// Convert array to enumerable
var filtered = range.Where(o => o % 2 == 1);		// Filter out even numbers

// Update UI elements
document.getElementById('array').innerHTML = array; 
document.getElementById('odd').innerHTML = filtered.ToArray(); 
document.getElementById('result').innerHTML = filtered.Count(); 

document.getElementById('allatonce').innerHTML = 
	Enumerable.Range(0, 150)
            .Except(Enumerable.Range(50, 15))
            .Where(o => o % 2 == 1)
            .Count();
                                                           ;