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. 五、RegExp(正则表达式)篇

    正则表达式,只用记住: 0./pattern/igm   i--不区分大小写 g--找到所有相匹配的 m--多行匹配  可以只写其中一个  ps:/pattern/i (无视大小写) 1." ...

  2. [转]win7下修改C盘USERS文件下的名称

    Win7下C:\Users\Cortana以账户名称命名的系统文件夹用户名的修改   Win7下C:\Users\Cortana以账户名称命名的系统文件夹用户名的修改 Win7下C:\Users\Co ...

  3. nodeJs 对 Mysql 数据库的 curd

    var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : ' ...

  4. mysql5.7数据库与5.7之前版本比较

    数据库初始化方式变更 <5.7 版本 mysql_install_db >5.7 版本 bin/mysqld --initialize --user =mysql --basedir=/u ...

  5. poj3308 Paratroopers

    Description It is year 2500 A.D. and there is a terrible war between the forces of the Earth and the ...

  6. MySQL分区的限制(最多有多少个分区)

    MySQL分区的限制 •   只能对数据表的整型列进行分区,或者数据列可以通过分区函数转化成整型列 •   最大分区数目不能超过1024 •   如果含有唯一索引或者主键,则分区列必须包含在所有的唯一 ...

  7. asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文件接口

    FormItem类 public class FormItem { public string Name { get; set; } public ParamType ParamType { get; ...

  8. 简单工具 & 杂技

    图片压缩: 腾讯智图(http://zhitu.isux.us/) 手机的所有尺寸大小规范: http://screensiz.es/phone 需求: 移动端宽高一致的盒子(因为移动端屏幕宽度不一样 ...

  9. lua敏感词过滤

    --过滤敏感词(如果onlyKnowHas为true,表示只想知道是否存在敏感词,不会返回过滤后的敏感词,比如用户注册的时候,我们程序是只想知道用户取的姓名是否包含敏感词的(这样也能提高效率,检测到有 ...

  10. 【app.js】配置及App函数说明

    app.js中的App函数用来注册一个小程序或设置全局变量. App函数: 语法:App(Object)     参数: Object json对象     说明: App函数必须在app.js中调用 ...