<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>linqjs Wiki &amp; Documentation Rss Feed</title><link>http://linqjs.codeplex.com/Wiki/View.aspx?title=Home</link><description>linqjs Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=47</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Rx&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1"&gt;Achiral&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js"&gt;linq.js&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery"&gt;linq.js-jQuery&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings"&gt;linq.js-Bindings&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm"&gt;linq.js Reference &amp;amp; LINQPad&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Starting linq.js ver.3.0.0-beta!(2012/07/19)&lt;/h2&gt;&lt;a href="http://linqjs.codeplex.com/releases/view/91395"&gt;Get the ver.3.0.3-Beta4&lt;/a&gt; @2012/10/09&lt;br /&gt;or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre,  linq.js-RxJS -Pre, linq.js-QUnit -Pre&lt;br /&gt;Now TypeScript support!&lt;br /&gt;&lt;br /&gt;Please try it! and give me a feedback!&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/376207"&gt;http://linqjs.codeplex.com/discussions/376207&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Tue, 09 Oct 2012 13:44:08 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121009014408P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=46</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Rx&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1"&gt;Achiral&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js"&gt;linq.js&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery"&gt;linq.js-jQuery&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings"&gt;linq.js-Bindings&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm"&gt;linq.js Reference &amp;amp; LINQPad&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Starting linq.js ver.3.0.0-beta!(2012/07/19)&lt;/h2&gt;&lt;a href="http://linqjs.codeplex.com/releases/view/91395"&gt;Get the ver.3.0.2-RC&lt;/a&gt; @2012/09/16&lt;br /&gt;or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre,  linq.js-RxJS -Pre, linq.js-QUnit -Pre&lt;br /&gt;&lt;br /&gt;Please try it! and give me a feedback!&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/376207"&gt;http://linqjs.codeplex.com/discussions/376207&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Sun, 16 Sep 2012 13:07:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120916010726P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=45</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Rx&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1"&gt;Achiral&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js"&gt;linq.js&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery"&gt;linq.js-jQuery&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings"&gt;linq.js-Bindings&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm"&gt;linq.js Reference &amp;amp; LINQPad&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Starting linq.js ver.3.0.0-beta!(2012/07/19)&lt;/h2&gt;&lt;a href="http://linqjs.codeplex.com/releases/view/91395"&gt;Get the ver.3.0.1-beta2&lt;/a&gt; @2012/07/26&lt;br /&gt;or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre,  linq.js-RxJS -Pre, linq.js-QUnit -Pre&lt;br /&gt;&lt;br /&gt;Please try it! and give me a feedback!&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/376207"&gt;http://linqjs.codeplex.com/discussions/376207&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Thu, 26 Jul 2012 15:24:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120726032442P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=44</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Rx&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1"&gt;Achiral&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js"&gt;linq.js&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery"&gt;linq.js-jQuery&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings"&gt;linq.js-Bindings&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm"&gt;linq.js Reference &amp;amp; LINQPad&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Starting linq.js ver.3.0.0-beta!(2012/07/19)&lt;/h2&gt;&lt;a href="http://linqjs.codeplex.com/releases/view/91395"&gt;Get the ver.3.0.0-beta&lt;/a&gt;&lt;br /&gt;or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre,  linq.js-RxJS -Pre, linq.js-QUnit -Pre&lt;br /&gt;&lt;br /&gt;Please try it! and give me a feedback!&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/376207"&gt;http://linqjs.codeplex.com/discussions/376207&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Thu, 19 Jul 2012 11:40:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120719114020A</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=43</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Rx&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1"&gt;Achiral&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js"&gt;linq.js&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery"&gt;linq.js-jQuery&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings"&gt;linq.js-Bindings&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm"&gt;linq.js Reference &amp;amp; LINQPad&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Starting linq.js ver.3.0.0-beta!(2012/07/19)&lt;/h2&gt;&lt;a href="http://linqjs.codeplex.com/releases/view/91395"&gt;Get the ver.3.0.0-beta&lt;/a&gt;&lt;br /&gt;or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre,  linq.js-RxJS -Pre, linq.js-QUnit&lt;br /&gt;&lt;br /&gt;Please try it! and give me a feedback!&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/376207"&gt;http://linqjs.codeplex.com/discussions/376207&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Thu, 19 Jul 2012 11:39:46 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120719113946A</guid></item><item><title>New Comment on "linq.js Samples"</title><link>http://linqjs.codeplex.com/wikipage?title=linq.js Samples&amp;ANCHOR#C21033</link><description>I am glad to have found this page...I have been using Linq.js for a few months but the samples here are eye opening. Thanks.</description><author>MatthewNichols</author><pubDate>Thu, 22 Sep 2011 12:52:03 GMT</pubDate><guid isPermaLink="false">New Comment on "linq.js Samples" 20110922125203P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=42</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js" class="externalLink"&gt;linq.js&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery" class="externalLink"&gt;linq.js-jQuery&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings" class="externalLink"&gt;linq.js-Bindings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;i&gt;Questionnaire(2011/09/18)&lt;/i&gt;&lt;/h2&gt;We welcome your feedback, change the method name to lowerCamelCase in linq.js of the next version.&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/272922" class="externalLink"&gt;http://linqjs.codeplex.com/discussions/272922&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Sat, 17 Sep 2011 15:14:44 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110917031444P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=41</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js" class="externalLink"&gt;linq.js&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery" class="externalLink"&gt;linq.js-jQuery&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings" class="externalLink"&gt;linq.js-Bindings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;&lt;i&gt;Questionnaire&lt;/i&gt;&lt;/h2&gt;We welcome your feedback, change the method name to lowerCamelCase in linq.js of the next version.&lt;br /&gt;&lt;a href="http://linqjs.codeplex.com/discussions/272922" class="externalLink"&gt;http://linqjs.codeplex.com/discussions/272922&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Sat, 17 Sep 2011 11:10:34 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110917111034A</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=40</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(&lt;a href="http://nuget.org/List/Packages/linq.js" class="externalLink"&gt;linq.js&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-jQuery" class="externalLink"&gt;linq.js-jQuery&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://nuget.org/List/Packages/linq.js-Bindings" class="externalLink"&gt;linq.js-Bindings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Sat, 06 Aug 2011 05:30:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110806053022A</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=39</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(linq.js, linq.js-jQuery, linq.js-Bindings)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i)[0] })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Tue, 19 Jul 2011 19:36:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110719073645P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=38</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(linq.js, linq.js-jQuery, linq.js-Bindings)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shorthand of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i) })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Sun, 27 Mar 2011 10:24:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110327102414A</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=37</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NuGet install support(linq.js, linq.js-jQuery, linq.js-Bindings)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shortcut of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i) })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Fri, 21 Jan 2011 15:01:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110121030142P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=36</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;
&lt;li&gt;binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -&amp;gt; see &lt;a href="http://linqjs.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shortcut of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i) })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Sat, 14 Aug 2010 05:21:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100814052102A</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=35</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// shortcut! string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shortcut of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i) })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Thu, 01 Jul 2010 16:32:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100701043205P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=34</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;sample from http://twitter.com/statuses/public_timeline.json&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shortcut of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i) })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Thu, 01 Jul 2010 16:31:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100701043143P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://linqjs.codeplex.com/documentation?version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;with RxJS&lt;/h2&gt;
use with &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;RxJS - Reactive Extensions for JavaScript&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;impot linq.rx.js -&amp;gt; add two methods
&lt;ul&gt;&lt;li&gt;ToObservable - Enumerable to Observable&lt;/li&gt;
&lt;li&gt;ToEnumerable - Observable to Enumerable&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;

    &lt;span style="color:Green;"&gt;// enumerable sequence to observable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; source = Enumerable.Range(1, 10)
        .Shuffle()
        .ToObservable()
        .Publish();

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 == 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Even:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 != 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Odd:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Connect();

    &lt;span style="color:Green;"&gt;// observable to enumerable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; subject = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Rx.ReplaySubject();
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;I&amp;quot;&lt;/span&gt;);
    subject.OnNext(4);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;);
    subject.OnNext(2);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;M&amp;quot;&lt;/span&gt;);
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = subject.ToEnumerable()
        .OfType(String)
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.charCodeAt() - 1 })
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; String.fromCharCode(x) })
        .ToString(&lt;span style="color:#A31515;"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;);
    alert(result); &lt;span style="color:Green;"&gt;// H-A-L&lt;/span&gt;
        
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129568" alt="screen.png" title="screen.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;compare RxNET with linq.js&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; RxNET &lt;/th&gt;&lt;th&gt; linq.js&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Defer &lt;/td&gt;&lt;td&gt; Enumerable.Empty().Let(enumerableFactory)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Generate &lt;/td&gt;&lt;td&gt; Enumerable.Unfold&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Using &lt;/td&gt;&lt;td&gt; Enumerable.RepeatWithFinalize&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SumEnumerable &lt;/td&gt;&lt;td&gt; Let(function (x) { return Enumerable.Return(x.Sum()) })&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; DistinctUntilChanged &lt;/td&gt;&lt;td&gt; PartitionBy(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, function (key, group) { return group.First() })&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;                     &lt;/td&gt;&lt;td&gt; PartitionBy(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;$$.First()&amp;quot;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; IsEmpty &lt;/td&gt;&lt;td&gt; !Any()&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Run &lt;/td&gt;&lt;td&gt; ForEach&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; StartWith &lt;/td&gt;&lt;td&gt; Insert(0, second)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; TakeLast &lt;/td&gt;&lt;td&gt; TakeFromLast&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SkipLast &lt;/td&gt;&lt;td&gt; TakeExceptLast&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RxVSDocGenerator&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;RxVSDocGenerator generate  IntelliSense document(rx-vsdoc.js) from RxJS.dll and RxJS.xml&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129572" alt="rxvsdoc1.jpg" title="rxvsdoc1.jpg" /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129573" alt="rxvsdoc2.jpg" title="rxvsdoc2.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;How to use&lt;br /&gt;1. RxJS.dll and RxJS.xml put in same directory with RxVSDocGenerator.exe&lt;br /&gt;2. execute RxVSDocGenerator.exe&lt;br /&gt;3. generated rx-vsdoc.js&lt;br /&gt;&lt;br /&gt;Notice:&lt;br /&gt;There are some problems in vsdoc.&lt;br /&gt;for example,&lt;br /&gt;Publish()&amp;#39;s return type is Rx.ConnectableObservable,&lt;br /&gt;Publish(selector)&amp;#39;s return type is Rx.Observable.&lt;br /&gt;But vsdoc IntelliSense does not support two return types.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Mon, 28 Jun 2010 15:19:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20100628031943P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://linqjs.codeplex.com/documentation?version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;with RxJS&lt;/h2&gt;
use with &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;RxJS - Reactive Extensions for JavaScript&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;impot linq.rx.js -&amp;gt; add two methods
&lt;ul&gt;&lt;li&gt;ToObservable - Enumerable to Observable&lt;/li&gt;
&lt;li&gt;ToEnumerable - Observable to Enumerable&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;

    &lt;span style="color:Green;"&gt;// enumerable sequence to observable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; source = Enumerable.Range(1, 10)
        .Shuffle()
        .ToObservable()
        .Publish();

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 == 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Even:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 != 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Odd:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Connect();

    &lt;span style="color:Green;"&gt;// observable to enumerable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; subject = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Rx.ReplaySubject();
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;I&amp;quot;&lt;/span&gt;);
    subject.OnNext(4);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;);
    subject.OnNext(2);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;M&amp;quot;&lt;/span&gt;);
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = subject.ToEnumerable()
        .OfType(String)
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.charCodeAt() - 1 })
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; String.fromCharCode(x) })
        .ToString(&lt;span style="color:#A31515;"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;);
    alert(result); &lt;span style="color:Green;"&gt;// H-A-L&lt;/span&gt;
        
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129568" alt="screen.png" title="screen.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;compare RxNET with linq.js&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; RxNET &lt;/th&gt;&lt;th&gt; linq.js&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Defer &lt;/td&gt;&lt;td&gt; Enumerable.Empty().Let(enumerableFactory)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Generate &lt;/td&gt;&lt;td&gt; Enumerable.Unfold&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Using &lt;/td&gt;&lt;td&gt; Enumerable.RepeatWithFinalize&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SumEnumerable &lt;/td&gt;&lt;td&gt; Let(function (x) { return Enumerable.Return(x.Sum()) })&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; DistinctUntilChanged &lt;/td&gt;&lt;td&gt; PartitionBy(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, function (key, group) { return group.First() })&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;                     &lt;/td&gt;&lt;td&gt; PartitionBy(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;$$.First()&amp;quot;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; IsEmpty &lt;/td&gt;&lt;td&gt; !Any()&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Run &lt;/td&gt;&lt;td&gt; ForEach&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; StartWith &lt;/td&gt;&lt;td&gt; Insert(0, second)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; TakeLast &lt;/td&gt;&lt;td&gt; TakeFromLast&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SkipLast &lt;/td&gt;&lt;td&gt; TakeExceptLast&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RxVSDocGenerator&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;RxVSDocGenerator generate  IntelliSense document(rx-vsdoc.js) from RxJS.dll and RxJS.xml&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129572" alt="rxvsdoc1.jpg" title="rxvsdoc1.jpg" /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129573" alt="rxvsdoc2.jpg" title="rxvsdoc2.jpg" /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Mon, 28 Jun 2010 15:18:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20100628031802P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://linqjs.codeplex.com/documentation?version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;with RxJS&lt;/h2&gt;
use with &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;RxJS - Reactive Extensions for JavaScript&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;impot linq.rx.js -&amp;gt; add two methods
&lt;ul&gt;&lt;li&gt;ToObservable - Enumerable to Observable&lt;/li&gt;
&lt;li&gt;ToEnumerable - Observable to Enumerable&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;

    &lt;span style="color:Green;"&gt;// enumerable sequence to observable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; source = Enumerable.Range(1, 10)
        .Shuffle()
        .ToObservable()
        .Publish();

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 == 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Even:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 != 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Odd:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Connect();

    &lt;span style="color:Green;"&gt;// observable to enumerable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; subject = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Rx.ReplaySubject();
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;I&amp;quot;&lt;/span&gt;);
    subject.OnNext(4);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;);
    subject.OnNext(2);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;M&amp;quot;&lt;/span&gt;);
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = subject.ToEnumerable()
        .OfType(String)
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.charCodeAt() - 1 })
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; String.fromCharCode(x) })
        .ToString(&lt;span style="color:#A31515;"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;);
    alert(result); &lt;span style="color:Green;"&gt;// H-A-L&lt;/span&gt;
        
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=129568" alt="screen.png" title="screen.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;compare RxNET with linq.js&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; RxNET &lt;/th&gt;&lt;th&gt; linq.js&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Defer &lt;/td&gt;&lt;td&gt; Enumerable.Empty().Let(enumerableFactory)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Generate &lt;/td&gt;&lt;td&gt; Enumerable.Unfold&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; EnumerableEx.Using &lt;/td&gt;&lt;td&gt; Enumerable.RepeatWithFinalize&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SumEnumerable &lt;/td&gt;&lt;td&gt; Let(function (x) { return Enumerable.Return(x.Sum()) })&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; DistinctUntilChanged &lt;/td&gt;&lt;td&gt; PartitionBy(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, function (key, group) { return group.First() })&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;                     &lt;/td&gt;&lt;td&gt; PartitionBy(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;$$.First()&amp;quot;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; IsEmpty &lt;/td&gt;&lt;td&gt; !Any()&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Run &lt;/td&gt;&lt;td&gt; ForEach&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; StartWith &lt;/td&gt;&lt;td&gt; Insert(0, second)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; TakeLast &lt;/td&gt;&lt;td&gt; TakeFromLast&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SkipLast &lt;/td&gt;&lt;td&gt; TakeExceptLast&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Mon, 28 Jun 2010 15:10:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20100628031037P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://linqjs.codeplex.com/documentation?version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;with RxJS&lt;/h2&gt;
use with &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;RxJS - Reactive Extensions for JavaScript&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;impot linq.rx.js -&amp;gt; add two methods
&lt;ul&gt;&lt;li&gt;ToObservable - Enumerable to Observable&lt;/li&gt;
&lt;li&gt;ToEnumerable - Observable to Enumerable&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&lt;span style="color:#A31515;"&gt;&amp;quot;linq.rx.js&amp;quot;&lt;/span&gt; type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&lt;span style="color:#A31515;"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;

    &lt;span style="color:Green;"&gt;// enumerable sequence to observable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; source = Enumerable.Range(1, 10)
        .Shuffle()
        .ToObservable()
        .Publish();

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 == 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Even:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x % 2 != 0 })
        .Subscribe(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { document.writeln(&lt;span style="color:#A31515;"&gt;&amp;quot;Odd:&amp;quot;&lt;/span&gt; + x + &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;) });

    source.Connect();

    &lt;span style="color:Green;"&gt;// observable to enumerable&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; subject = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Rx.ReplaySubject();
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;I&amp;quot;&lt;/span&gt;);
    subject.OnNext(4);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;);
    subject.OnNext(2);
    subject.OnNext(&lt;span style="color:#A31515;"&gt;&amp;quot;M&amp;quot;&lt;/span&gt;);
    &lt;span style="color:Blue;"&gt;var&lt;/span&gt; result = subject.ToEnumerable()
        .OfType(String)
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.charCodeAt() - 1 })
        .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; String.fromCharCode(x) })
        .ToString(&lt;span style="color:#A31515;"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;);
    alert(result); &lt;span style="color:Green;"&gt;// H-A-L&lt;/span&gt;
        
&amp;lt;/script&amp;gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Mon, 28 Jun 2010 15:06:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20100628030628P</guid></item><item><title>Updated Wiki: Home</title><link>http://linqjs.codeplex.com/wikipage?version=33</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;linq.js - LINQ for JavaScript&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;implement all .NET 4.0 methods and many extra methods (inspiration from &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" class="externalLink"&gt;Rx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://d.hatena.ne.jp/NyaRuRu/20080115/p1" class="externalLink"&gt;Achiral&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, Haskell, Ruby, etc...)&lt;/li&gt;
&lt;li&gt;complete lazy evaluation&lt;/li&gt;
&lt;li&gt;full IntelliSense support for VisualStudio&lt;/li&gt;
&lt;li&gt;two versions - linq.js and jquery.linq.js (jQuery plugin)&lt;/li&gt;
&lt;li&gt;support Windows Script Host&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;90 Methods&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,&lt;br /&gt;Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, &lt;br /&gt;Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,&lt;br /&gt;LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, &lt;br /&gt;Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,&lt;br /&gt;Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,&lt;br /&gt;ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;see details - &lt;a href="http://neue.cc/reference.htm" class="externalLink"&gt;linq.js Reference &amp;amp; LINQPad&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Query objects or json(from http://twitter.com/statuses/public_timeline.json )&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; jsonArray = [
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 100, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;d_linq&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;to objects&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 130, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;c_bill&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;g&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 155, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;b_mskk&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;kabushiki kaisha&amp;quot;&lt;/span&gt; },
    { &lt;span style="color:#A31515;"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;: { &lt;span style="color:#A31515;"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: 301, &lt;span style="color:#A31515;"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;a_xbox&amp;quot;&lt;/span&gt; }, &lt;span style="color:#A31515;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;: &lt;span style="color:#A31515;"&gt;&amp;quot;halo reach&amp;quot;&lt;/span&gt; }
]
&lt;span style="color:Green;"&gt;// [&amp;quot;b_mskk:kabushiki kaisha&amp;quot;, &amp;quot;c_bill:g&amp;quot;, &amp;quot;d_linq:to objects&amp;quot;]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.id &amp;lt; 200 })
    .OrderBy(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (x) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; x.user.screen_name + &lt;span style="color:#A31515;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt; + x.text })
    .ToArray();
&lt;span style="color:Green;"&gt;// string lambda selector&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; queryResult2 = Enumerable.From(jsonArray)
    .Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.id &amp;lt; 200&amp;quot;&lt;/span&gt;)
    .OrderBy(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name&amp;quot;&lt;/span&gt;)
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.user.screen_name + &amp;#39;:&amp;#39; + $.text&amp;quot;&lt;/span&gt;)
    .ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;High compatibility with C# Linq&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// C# LINQ (delegate)&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(delegate(&lt;span style="color:Blue;"&gt;int&lt;/span&gt; i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// linq.js - anonymous function&lt;/span&gt;
Enumerable.Range(1, 10)
    .Where(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i % 3 == 0; })
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt;(i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; i * 10; });
&lt;span style="color:Green;"&gt;// C# LINQ (lambda)&lt;/span&gt;
Enumerable.Range(1, 10).Where(i =&amp;gt; i % 3 == 0).Select(i =&amp;gt; i * 10);
&lt;span style="color:Green;"&gt;// linq.js - lambda expression&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;i =&amp;gt; i * 10&amp;quot;&lt;/span&gt;);
&lt;span style="color:Green;"&gt;// $ is default iterator variable like Scala&amp;#39;s &amp;quot;_&amp;quot; or Groovy&amp;#39;s &amp;quot;it&amp;quot;&lt;/span&gt;
Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$ % 3 == 0&amp;quot;&lt;/span&gt;).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$ * 10&amp;quot;&lt;/span&gt;);
 &lt;span style="color:Green;"&gt;// &amp;quot;&amp;quot; is shortcut of &amp;quot;x =&amp;gt; x&amp;quot; (identity function)&lt;/span&gt;
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;outer,inner=&amp;gt;outer*inner&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; array = [100, 200, 30, 40, 500, 40, 200];
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex1 = Enumerable.From(array).Distinct().ToArray(); &lt;span style="color:Green;"&gt;// [100, 200, 30, 40, 500]&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex2 = Enumerable.From(&lt;span style="color:#A31515;"&gt;&amp;quot;foobar&amp;quot;&lt;/span&gt;).ToArray(); &lt;span style="color:Green;"&gt;// [&amp;quot;f&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;r&amp;quot;];&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); &lt;span style="color:Green;"&gt;// [{Key:&amp;quot;foo&amp;quot;,Value:10}, {Key:&amp;quot;bar&amp;quot;,Value:20}]&lt;/span&gt;

&lt;span style="color:Green;"&gt;// C# - AnonymousType&lt;/span&gt;
array.Select((val, i) =&amp;gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; { Value = val, Index = i });
&lt;span style="color:Green;"&gt;// linq.js - object literal&lt;/span&gt;
Enumerable.From(array).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;val,i=&amp;gt;{Value:val, Index:i}&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;jQuery plugin version&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// $.Enumerable&lt;/span&gt;
$.Enumerable.Range(1, 10).Where(&lt;span style="color:#A31515;"&gt;&amp;quot;$%2==0&amp;quot;&lt;/span&gt;).ForEach(&lt;span style="color:#A31515;"&gt;&amp;quot;alert($)&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// TojQuery - Enumerable to jQuery&lt;/span&gt;
$.Enumerable.Range(1, 10)
    .Select(&lt;span style="color:Blue;"&gt;function&lt;/span&gt; (i) { &lt;span style="color:Blue;"&gt;return&lt;/span&gt; $(&lt;span style="color:#A31515;"&gt;&amp;quot;&amp;lt;option&amp;gt;&amp;quot;&lt;/span&gt;).text(i) })
    .TojQuery()
    .appendTo(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;);

&lt;span style="color:Green;"&gt;// toEnumerable - jQuery to Enumerable&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; sum = $(&lt;span style="color:#A31515;"&gt;&amp;quot;#select1&amp;quot;&lt;/span&gt;).children()
    .toEnumerable()
    .Select(&lt;span style="color:#A31515;"&gt;&amp;quot;parseInt($.text())&amp;quot;&lt;/span&gt;)
    .Sum(); &lt;span style="color:Green;"&gt;// 55&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118502" alt="linq-jquery.jpg" title="linq-jquery.jpg" /&gt;&lt;br /&gt;
&lt;h2&gt;IntelliSense vsdoc&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=linqjs&amp;DownloadId=118493" alt="linqjs_intellisense.jpg" title="linqjs_intellisense.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;video - using with Visual Studio 2010&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vOk7x1aHeEI"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/vOk7x1aHeEI" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=vOk7x1aHeEI" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;video - how to debug linq.js&lt;br /&gt;&lt;br /&gt;&lt;div class="video" style="text-align:Center"&gt;&lt;span class="player"&gt;&lt;object height="285px" width="320px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pyNqIGJVpHs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed height="285px" width="320px" type="application/x-shockwave-flash" wmode="transparent" src="http://www.youtube.com/v/pyNqIGJVpHs" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="external"&gt;&lt;a href="http://www.youtube.com/watch?v=pyNqIGJVpHs" target="_blank"&gt;Launch in another window&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;with Windows Script Host&lt;/h2&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;// get folder name and file name...&lt;/span&gt;

&lt;span style="color:Blue;"&gt;var&lt;/span&gt; dir = WScript.CreateObject(&lt;span style="color:#A31515;"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;).GetFolder(&lt;span style="color:#A31515;"&gt;&amp;quot;C:\\&amp;quot;&lt;/span&gt;);
 
&lt;span style="color:Green;"&gt;// normally&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames = [];
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
&lt;span style="color:Blue;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; e = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

&lt;span style="color:Green;"&gt;// linq.js&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select(&lt;span style="color:#A31515;"&gt;&amp;quot;$.Name&amp;quot;&lt;/span&gt;).ToArray();
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>neuecc</author><pubDate>Mon, 28 Jun 2010 14:45:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100628024557P</guid></item></channel></rss>