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

LINQ查詢語法敘述

開發 后端
這里介紹除了LINQ查詢語法外,其他都是我們所熟悉的語法,而LINQ查詢語法跟SQL查詢語法很相識,除了先后順序。

學習LINQ時,經常會遇到LINQ查詢語法問題,這里將介紹LINQ查詢語法問題的解決方法。

LINQ查詢語法

首先來看一個很簡單的LINQ查詢例子,查詢一個int 數組中小于5的數字,并按照大小順序排列:

  1. class Program  
  2. {  
  3. static void Main(string[] args)  
  4. {  
  5. int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };  
  6.  
  7. var m = from n in arr where n < 5 orderby n select n;  
  8. foreach (var n in m)  
  9. {  
  10. Console.WriteLine(n);  
  11. }  
  12. Console.ReadLine();  
  13. }  
  14. }  

上述代碼除了LINQ查詢語法外,其他都是我們所熟悉的語法,而LINQ查詢語法跟SQL查詢語法很相識,除了先后順序。

為何 LINQ 查詢語法是以 from 關鍵字開頭的,而不是以 select 關鍵字開頭的?select 開頭這種寫法跟SQL的寫法更接近,更易懂呀?簡單來說,為了IDE的智能感知(Intelisence)這個功能,select 關鍵字放在后面了。

編程語言以 select 開頭寫LINQ查詢語法不是沒出現過,你如果使用過2005年的VB9 CTP 版本,那時候VB9的LINQ查詢語法就是 select 關鍵字在前面,但是 select 關鍵字在前面,在做智能感知(Intelisence)時候就很頭大。經過微軟IDE組的權衡,確定了把 from 關鍵字放在最前面。

比如:VB9 LINQ的查詢語法還是select 參數在最前面。不過后來 VB9 測試版改成了跟 C# 一樣的做法, from 關鍵字放在最前面了。更詳細的解釋,來自裝配腦袋,假設你要書寫這樣的代碼:Select p.Name, p.Age From p In persons Where xxx ,代碼是一個個字符輸入的。我們在寫到 p in persons 之前,p 的類型是無法推測的,所以寫 Select p. 的時候,Name之類的屬性不會彈出智能提示來。

這樣就需要先去寫 From 這句,再回來寫 Select。微軟IDE組經過反復考慮決定,還不如就把 Select 寫到后面了。于是編程語言中的寫法就確定這樣來寫了。

我們再來看一個稍稍復雜的LINQ查詢:

在我們羅列的語言字符串中,我們希望按照字符長短,分類羅列出來,實現代碼如下:

  1. static void Main(string[] args)  
  2. {  
  3. string [] languages = {"Java","C#","C++","Delphi","VB.net","VC.net",
    "C++ Builder","Kylix","Perl","Python"};  
  4.  
  5. var query = from item in languages  
  6. orderby item  
  7. group item by item.Length into lengthGroups  
  8. orderby lengthGroups.Key descending  
  9. select lengthGroups;  
  10.  
  11. foreach (var item in query)  
  12. {  
  13. Console.WriteLine("strings of length {0}",item.Key);  
  14. foreach (var val in item)  
  15. {  
  16. Console.WriteLine(val);  
  17. }  
  18. }  
  19. Console.ReadLine();  
  20. }  

其中的 into 關鍵字表示 將前一個查詢的結果視為后續查詢的生成器,這里是跟 group by 一起使用的。

LINQ中的Group by不要跟 SQL 中的Group by 混淆,SQL 由于是二維結構,Group by 的一些邏輯受二維結構的約束,無法象 LINQ 中的Group by 這么靈活。

【編輯推薦】

  1. Linq結果集形狀概述
  2. Linq存儲過程返回詳解
  3. Linq調用LoadProducts方法
  4. Linq使用數據表簡單描述
  5. Linq對象引用簡單介紹
責任編輯:佚名 來源: IT168
相關推薦

2009-09-14 10:20:52

LINQ查詢語法

2009-09-17 08:47:00

Linq查詢

2009-09-14 09:55:55

Linq基本語法

2009-09-10 13:54:27

LINQ語法

2009-09-10 16:28:17

LINQ查詢

2009-09-14 10:09:26

LINQ查詢結果

2009-09-14 10:13:02

LINQ查詢操作

2009-09-08 17:27:18

LINQ to Dat

2009-09-15 10:46:04

LINQ to SQL

2009-09-16 10:38:43

LINQ查詢

2009-09-17 13:15:20

LINQ查詢

2009-09-16 10:08:06

LINQ查詢

2009-09-15 09:19:22

linq動態條件

2009-09-15 13:28:49

LINQ表間關系查詢

2009-09-15 14:58:26

Linq查詢本質

2009-09-15 15:18:40

Linq連接查詢

2009-09-15 16:09:12

LINQ進行查詢

2009-09-17 16:46:34

Linq to sql

2009-09-18 15:15:12

LINQ to SQL

2009-09-14 18:41:59

LINQ查詢
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区久久久久久久久 | 久久电影一区 | 欧美aⅴ | 中文字幕亚洲一区二区va在线 | 337p日本欧洲亚洲大胆鲁鲁 | 精品九九久久 | 一区二区三区在线电影 | 国产一区二区高清在线 | 天天曰夜夜操 | 国产精品久久久99 | 极品电影院 | 日韩欧美一区二区三区 | 欧美aaa一级片 | 天天曰天天曰 | 日韩成人在线播放 | 国产一区二区三区精品久久久 | 国产精品亚洲视频 | 精品一区二区电影 | 蜜桃av人人夜夜澡人人爽 | 久久久久久亚洲国产精品 | 国产成人免费一区二区60岁 | 欧美一级片在线看 | 正在播放国产精品 | 国产精品亚洲成在人线 | 97精品一区二区 | 亚洲一区二区免费电影 | 91资源在线 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 伊人久麻豆社区 | 亚洲一区二区不卡在线观看 | 在线观看免费黄色片 | 中文字幕国产第一页 | 农村妇女毛片精品久久久 | 欧美视频一级 | 无码日韩精品一区二区免费 | 久久精品二区 | 一区二区三区视频 | 午夜性色a√在线视频观看9 | 国产精品99久久久久久大便 | 精品国产乱码久久久久久a丨 | 91精品国产色综合久久不卡98 |