成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解LINQ to JavaScript的幾種方法

開發 后端
本文將為大家介紹LINQ to JavaScript的幾種方法,希望通過本文能對大家用好數據鏈接有所幫助。

LINQ TO SQL概述

LINQ TO SQL是LINQ技術在數據庫方面的應用。數據庫技術從OLEDB,ODBC到ADO,在到ADO.NET到現在的LINQ TO SQL,讓程序員操作數據庫越來越簡單。

LINQ TO JAVASCRIPT概述

LINQ TO  JAVASCRIPT 宗旨就是代碼風格像 LINQ TO SQL 一樣操作數據。

LINQ TO  JAVASCRIPT 數據格式為 JSON (JavaScript Object Notatio)

那我們看看  linq to javascript 是怎么做的

首先,我們先準備靜態數據做為演示用。

  1. var Samples = {};  
  2. Samples.People = [  
  3.         { ID: 1, FirstName: "Chris", LastName: "Pearson", BookIDs: [8008, 1002, 1003] },  
  4.         { ID: 2, FirstName: "Chris", LastName: "Johnson", BookIDs: [2001, 2002, 2003] },  
  5.         { ID: 3, FirstName: "Josh", LastName: "Sutherland", BookIDs: [3001, 3002, 3003] },  
  6.         { ID: 4, FirstName: "John", LastName: "Ronald", BookIDs: [4001, 4002, 4003] },  
  7.         { ID: 5, FirstName: "Steve", LastName: "Pinkerton", BookIDs: [1001, 1002, 1003] },  
  8.         { ID: 6, FirstName: "Katie", LastName: "Zimmerman", BookIDs: [2001, 2002, 2003] },  
  9.         { ID: 7, FirstName: "Dirk", LastName: "Anderson", BookIDs: [3001, 3002, 3003] },  
  10.         { ID: 8, FirstName: "Chris", LastName: "Stevenson", BookIDs: [4001, 4002, 4003] },  
  11.         { ID: 9, FirstName: "Bernard", LastName: "Sutherland", BookIDs: [1001, 2002, 3003] },  
  12.         { ID: 10, FirstName: "Kate", LastName: "Pinkerton", BookIDs: [4001, 3002, 2003] }  
  13.     ]; 

 核心代碼我們加到了YUI 里

  1. YUI.add('LINQ', function(Y) {  
  2.  // core code  
  3. },'3.1.1'); 

用Where關鍵字查詢

  1. var db = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.FirstName == 'Chris';}) 

會返回三條數據

  1. {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]}, 
  2. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]}, 
  3. {ID => 8, FirstName => Chris, LastName => Stevenson, BookIDs => [4001, 4002, 4003]}]}  
  4. Select  
  5.  var db = Y.LINQ(Samples.People)  
  6.                .Where(function(item){return item.FirstName == 'Chris';})  
  7.                .Select(function(item){return item.FirstName;}) 

返回結果

語句中指定了返回 FirstName  所以返回 {items => [Chris, Chris, Chris]}

Intersect

第一個結果集

  1. var test2 = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.FirstName != 'Chris';}); 

返回是

  1. {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  2. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]},  
  3.  {ID => 5, FirstName => Steve, LastName => Pinkerton, BookIDs => [1001, 1002, 1003]},   
  4. {ID => 6, FirstName => Katie, LastName => Zimmerman, BookIDs => [2001, 2002, 2003]},   
  5. {ID => 7, FirstName => Dirk, LastName => Anderson, BookIDs => [3001, 3002, 3003]},  
  6.  {ID => 9, FirstName => Bernard, LastName => Sutherland, BookIDs => [1001, 2002, 3003]},  
  7.  {ID => 10, FirstName => Kate, LastName => Pinkerton, BookIDs => [4001, 3002, 2003]}]} 

第2個結果集

  1. var test = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.ID < 5;})  
  3. .Intersect(test2) 

先取出所有ID小于5的數據,然后再返回和test2數據集相交的部分

返回結果

  1. {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  2. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

只返回3,4兩條數據了 ,因為名字不等于Chris 并且 ID < 5的 就只有2條數據 : )

  1.  OrderBy / OrderByDescending  
  2. var test = Y.LINQ(Samples.People)  
  3. .Where(function(item){return item.ID < 5;})  
  4. .OrderByDescending(function(item){return item.ID})  

 按指定表達式對集合倒序排序,這里我們用ID排序

返回結果:

  1. {items => [{ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]},  
  2.  {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  3. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},   
  4. {ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]}]} 
  1. var test = Y.LINQ(Samples.People)  
  2. .Where(function(item){return item.ID < 5;})  
  3. .OrderBy(function(item){return item.ID}) 

 按指定表達式對集合正序排序,這里我們用ID排序

返回結果:

  1. {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},   
  2. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},   
  3. {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  4. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

Skip

跳過幾條數據

  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .OrderBy(function(item){return item.ID})  
  4.                     .Skip(0); 

返回結果:

  1. {items => [{ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]},   
  2. {ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},  
  3.  {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

從結果看,我們的數據集跳過了第一條數據

Delete

刪除

  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .OrderBy(function(item){return item.ID})  
  4.                     .Skip(0)  
  5.                     .Delete(function(item){return item.ID == 2;}) 

返回結果:

  1. {items => [{ID => 3, FirstName => Josh, LastName => Sutherland, BookIDs => [3001, 3002, 3003]},   
  2. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]}]} 

Min  / Max / Average / Sum

  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .OrderBy(function(item){return item.ID})  
  4.                     .Skip(0)  
  5.                     .Delete(function(item){return item.ID == 2;})  
  6.                     .Min(function(item){return item.ID;}) 

沿用上面結果集,Min取最小值

最后返回結果 3 ,其他關鍵字用法相同 : )

First  / Last

  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .First(); 

返回首行數據

  1. {ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]} 
  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .Last(); 

返回末行數據

  1. {ID => 4, FirstName => John, LastName => Ronald, BookIDs => [4001, 4002, 4003]} 

Take

取前幾條數據

  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .Take(2); 

取了前2條數據,返回結果

  1. {items => [{ID => 1, FirstName => Chris, LastName => Pearson, BookIDs => [8008, 1002, 1003]},   
  2. {ID => 2, FirstName => Chris, LastName => Johnson, BookIDs => [2001, 2002, 2003]}]} 

Count

返回結果的總個數

  1. var test = Y.LINQ(Samples.People)  
  2.                     .Where(function(item){return item.ID < 5;})  
  3.                     .Count(); 

返回結果 4 ,正確的  ID小于5的 數據剛好是4條 : )

SelectMany  / Any / All / ElementAt /  Distinct ...... 等等 就不一一介紹了

[[11601]]

原文標題:LINQ TO JAVASCRIPT 

鏈接:http://www.cnblogs.com/windows7/archive/2010/06/03/1750431.html

【編輯推薦】

  1. Linq匿名類型簡單概述
  2. Linq隨機讀取數據淺析
  3. Linq Lambda表達式全面分析
  4. Linq擴展方法簡單分析
  5. 初探Linq局部變量類型
責任編輯:彭凡 來源: 博客園
相關推薦

2020-08-24 08:05:47

JavaScriptJavaScript 頁面

2009-09-09 11:24:46

PHP實現MVC

2020-10-16 18:35:53

JavaScript字符串正則表達式

2009-09-01 18:35:53

C#判斷文件存在

2021-11-05 21:36:59

JavaScript語言開發

2009-09-18 12:29:55

2010-05-17 15:17:06

MySQL常用操作

2013-08-21 11:31:21

iPhone圖片方法

2010-01-22 14:46:25

C++語言

2010-04-30 16:22:07

Unix終端

2010-10-26 09:23:03

Web Service

2021-03-08 09:32:04

Python文件命令

2011-06-16 10:48:33

session

2009-08-31 09:19:31

c#隱藏窗口

2020-01-10 16:23:44

Springboot停止服務Java

2021-02-26 13:20:48

Shell空行Linux

2018-08-09 20:47:41

2009-07-28 16:07:40

.NET圖片快速處理

2011-07-08 15:11:03

JAVA

2011-06-23 15:56:46

反向鏈接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久免费精品国产 | 日韩美女一区二区三区在线观看 | 婷婷丁香综合网 | 欧美亚洲国产日韩 | 亚洲经典一区 | 中文字幕的av | 成年视频在线观看 | 日本不卡免费新一二三区 | 精品欧美色视频网站在线观看 | 九九九视频在线 | 日韩三区在线 | 日韩欧美成人一区二区三区 | 日韩国产欧美在线观看 | 国产一区二区精品在线观看 | 四虎永久免费地址 | 亚洲黄色国产 | 一级久久久久久 | jizz在线免费观看 | 亚洲区在线 | 在线播放国产一区二区三区 | 欧美日批| 欧美一区视频 | 日韩一区不卡 | 亚洲精品视频免费 | 在线一区二区三区 | 中文字幕高清一区 | 日韩精品 电影一区 亚洲 | 日韩中文字幕在线免费 | 国产免费一区二区 | 亚洲电影成人 | 欧美99 | 久久久123| 国产一区二区久久 | 久久久999精品 | 久久免费精品视频 | 搞av.com | 一区二区在线 | 99久久精品免费看国产四区 | 色久在线| 蜜月aⅴ免费一区二区三区 99re在线视频 | 国产精品视频一区二区三区 |