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. Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

    2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache ...

  2. 学习CSS

    CSS教程 菜鸟教程 通过使用CSS我们可以大大提升网页开发的工作效率 什么是CSS? CSS指层叠样式表(Cascading Style Sheets) 样式定义如何显示HTML元素 样式通常存储在 ...

  3. Android面试收集录 对话框、信息提示和菜单

    1.如何使用AlertDialog显示一个列表? 使用AlertDialog.Builder.setItems方法. 在setItems中定义DialogInterface.OnClickListen ...

  4. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(四):安装MySQL数据库

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

  5. LeetCode:22. Generate Parentheses(Medium)

    1. 原题链接 https://leetcode.com/problems/generate-parentheses/description/ 2. 题目要求 给出一个正整数n,请求出由n对合法的圆括 ...

  6. 配置ORACLE的PRO*C环境

    1.访问数据库的方法    在ORACLE数据库管理和系统中,有三种访问数据库的方法:    ⑴.用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库:    ⑵.用第四代语言应用开发工具开 ...

  7. Mysql数据库的压力

    rationalError: (2006, 'MySQL server has gone away') 2017年10月10日 20:04:43 阅读数:377 问题描述 使用django+celer ...

  8. 【面试题】2018年最全Java面试通关秘籍第五套!

    [面试题]2018年最全Java面试通关秘籍第五套! 原创 2018-04-26 徐刘根 Java后端技术 第一套:<2018年最全Java面试通关秘籍第一套!> 第二套:<2018 ...

  9. error LNK2001: unresolved external symbol "public: __thiscall ControllerInterface::ControllerInterface(class QObject *)" (??0ControllerInterface@@QAE@PAVQObject@@@Z) downloadcontroller.obj

    前几天刚遇到这个问题,但是今天再碰到就又要思考怎么解决.这次特别记录一下,以防下次碰到再手足无措: 1.看到这个报错第一感觉LNK关键字,表示连接错误,这种错误有几个可以下手的点 1)函数声明和定义是 ...

  10. 初探 Qt Opengl【2】

    最近在研究QOPengl QGraphicsView QGraphicsItemQGraphicsScene不过也只是皮毛,也不是做什么技术贴,就是记录一下自己在其中遇到的问题,和自己新学到的东西. ...