linq.js 详细介绍

linq.js 是一个 JavaScript 实现的 LINQ。

主要特性:

实现所有 .NET 4.0 的方法

complete lazy evaluation

full IntelliSense support for VisualStudio

two versions - linq.js and jquery.linq.js (jQuery plugin)

support Windows Script Host

binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -> see documentation

NuGet install support

示例代码:

var jsonArray = [

{ "user": { "id": 100, "screen_name": "d_linq" }, "text": "to objects" },

{ "user": { "id": 130, "screen_name": "c_bill" }, "text": "g" },

{ "user": { "id": 155, "screen_name": "b_mskk" }, "text": "kabushiki kaisha" },

{ "user": { "id": 301, "screen_name": "a_xbox" }, "text": "halo reach" }

]

// ["b_mskk:kabushiki kaisha", "c_bill:g", "d_linq:to objects"]

var queryResult = Enumerable.From(jsonArray)

.Where(function (x) { return x.user.id < 200 })

.OrderBy(function (x) { return x.user.screen_name })

.Select(function (x) { return x.user.screen_name + ':' + x.text })

.ToArray();

// shortcut! string lambda selector

var queryResult2 = Enumerable.From(jsonArray)

.Where("$.user.id < 200")

.OrderBy("$www.cnzhaotai.com/ .user.screen_name")

.Select("$.user.screen_name + ':' + $.text")

.ToArray();

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

用途:方便js操作查询json数据。

下载网址:http://jslinq.codeplex.com/

使用方法:只需要引用linq.js即可。

查询方法:

一、where查询

var myList = [

{ Name: "Jim", www.wanmeiyuele.cn Age: 20 },

{ Name: "Kate", www.leyouzaixan.cn  Age: 21 },

{ Name: "Lilei", Age: 18 },

{ Name: "John", Age: 14 },

{ Name: "LinTao", www.yszx11.cn/  Age: 25 }

];

var arrRes = Enumerable.From(myList).Where("x=>x.Name=='Jim'").ToArray();

二、排序:OrderBy

var myList = [

{ Name: "Jim",www.baohuayule.com  Age: 20 },

{ Name: "Kate", Age: 21 },

{ Name: "Lilei",www.baohuayule.cn  Age: 18 },

{ Name: "John", Age: 14 },

{ Name: "LinTao",www.006665.cn  Age: 25 }

];

var arrRes = Enumerable.From(myList).OrderBy("x=>x.Age").ToArray();//降序OrderByDescending()

三、去重:Distinct

var myList = [

{ Name: "Jim", Age: 20 },

{ Name: "Kate", Age: 20 },

{ Name: "Lilei", Age: 20 },

{ Name: "John", Age: 14 },

{ Name: "LinTao", Age: 25 }

];

var arrRes = Enumerable.From(myList).Distinct("x=>x.Age").ToArray();

四、遍历:ForEach

var myList = [

{ Name: "Jim", Age: 20 },

{ Name: "Kate", Age: 20 },

{ Name: "Lilei", Age: 20 },

{ Name: "John", Age: 14 },

{ Name: "LinTao", Age: 25 }

];

Enumerable.From(myList).ForEach(function(value, index){

document.write("值="+value+",索引="+index);

});

五、取唯一对象:First、FirstOrDefault、Last、LastOrDefault、Single、SingleOrDefault

var myList = [

{ Name: "Jim", Age: 20 },

{ Name: "Kate", Age: 20 },

{ Name: "Lilei", Age: 20 },

{ Name: "John", Age: 14 },

{ Name: "LinTao", Age: 25 }

];

var arrRes = Enumerable.From(myList).FirstOrDefault("x=>x.Age>18");

 

六、Skip、Take

Enumerable.Range(1,10).Skip(5)//结果[6,7,8,9,10]

Enumerable.Range(1,10).Take(5)//结果[1,2,3,4,5]

linq.js的用法的更多相关文章

  1. Javascript模块化编程(三):require.js的用法

    Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...

  2. 【JavaScript】又一神器框架:linq.js

    引言 前几天针对一个js数组交集的问题请教了下同事,他第一反应就是循环,这也是常规思路,因为我个人更倾向于js些,我便开玩笑,不知道js能不能像linq那样实现这些操作呢?果断百度了一把,果然有现成框 ...

  3. JS 正则表达式用法

    JS 正则表达式用法简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...

  4. linq.js

    在做后台开发的时候,总是会碰到将拿到手的数据进行条件校验,而这些数据又不仅仅是单纯的一个,有时候会是一串大数据,需要自己在后台处理进而展示到前台页面上,酱紫自己第一反应就是使用for循环来遍历,并把所 ...

  5. toastr.js插件用法

    toastr.js插件用法 toastr.js是一个基于jQuery的非阻塞通知的JavaScript库.toastr.js可以设定四种通知模式:成功.出错.警告.提示.提示窗口的位置.动画效果等都可 ...

  6. Js相关用法个人总结

    Js相关用法个人总结  js中将数组元素添加到对象中var obj = {}; var pushArr = [11,22,33,44,55,66]; for(var i=0;i<pushArr. ...

  7. jQuery each和js forEach用法比较

    本文实例分析了jQuery each和js forEach用法.分享给大家供大家参考,具体如下: 对于遍历数组的元素,js代码和jquery都有类似的方法,js用的是forEach而jquery用的是 ...

  8. 查询Array中确定数值的对象&JS linq使用 = linq.js

    var x=new Array(); x.push({"a":3,"b":3},{"a":2,"b":2},{" ...

  9. 数组插件----linq.js

    优点 1.支持jQuery插件的方式.jquery.linq.min.js. 2.也可以像普通js方法一样使用.linq.min.js. 3.当然用习惯VS的童鞋肯定希望有个良好的智能感知,是的,它支 ...

随机推荐

  1. laravel -- 路由

    基本路由 Route::get('/get',function (){ return "this is get"; }); Route::post('/post',function ...

  2. Arduino平台基于DbC的软件调试

    基于LED和串口通信的DBC调试工具:HAssert --- Hyper LED/Serial Assert . 本文基于DbC思想 ,在Arduino平台上实现了两种断言显示方式---LED显示和串 ...

  3. 基于GTID的MySQL主从复制#从原理到配置

    GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成.这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也 ...

  4. Tensorflow之安装GPU版错误集合

        在根据教程http://blog.csdn.net/sb19931201/article/details/53648615安装好全部的时候,却无情的给我抛了几个错: 1.AttributeEr ...

  5. python2.7入门---运算符 &案例

        已经分享过变量类型的基本概念了,接下来就研究了一下运算符的基础知识.接下来我们就来看一下内容.举个简单的例子 4 +5 = 9 .例子中,4 和 5 被称为操作数,"+" ...

  6. RHEL-7.1 Server.x86_64 yum源设置为光盘

    1.挂载光盘 首先在media目录下创建文件夹CentOS mkdir CentOS 然后将光盘挂载在CentOS下 mount -t iso9660 -o loop /dev/cdrom /medi ...

  7. Tomcat配置SSL连接

    1.服务器端单项认证 在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把<Connector>元素的注释去掉即可: <!—  Define a ...

  8. VS2017发布微服务到docker

    1.本文档以eShopOnContainers.sevices.identity为描述对象,并包含docker for windows的部分配置流程. 2.前置环境:win10操作系统.安装VS201 ...

  9. 3、Java并发编程:Thread类的使用

    Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知 ...

  10. Python 3基础教程30-sys模块

    本文介绍sys模块,简单打印两个重定向输出. 目前使用机会没有,以后实际用到了,再去研究和学习.