Linq查詢語法與擴充方法
概念:語言整合查詢(Language Integrated Query,Linq)在C#中整合了查詢語法,可以用相同的語法訪問不同的資料來源。Linq提供了不同資料來源的抽象層,所以可以使用相同的語法。
並不是所有的查詢都可以用Linq查詢語法完成。也不是所有的擴充方法都對映到Linq查詢子句上。高階查詢需要使用擴充方法。
Linq有兩種語法風格:
- “查詢語法(Query Syntax)”,這種語法格式類似於SQL查詢。
- “點語法(Dot-nontation Syntax)”,這種語法是基於擴充方法的。
“查詢語法”的格式:查詢表示式必須以from開頭,以select或group結束。在這兩個子句中間可以使用where,orderby,join,let和其他from子句。
Linq有的方法有延遲的特性,這個特性的效果是直到對結果進行遍歷,才會執行該查詢。
擴充方法 |
描述 |
延遲 |
All |
如果資料來源的所有條目都與謂詞匹配,則返回true |
否 |
Any |
如果資料來源至少有一個條目與謂詞匹配,則返回true |
否 |
Contains |
如果資料來源包含指定的條目或值,返回true |
否 |
Count |
返回資料來源的條目數 |
否 |
First |
返回資料來源的第一個條目 |
否 |
FirstOrDefault |
返回資料來源的第一個條目,或無條目時,返回預設值 |
否 |
Last |
返回資料來源最後一個條目 |
否 |
LastOrDefault |
返回資料來源最後一個條目,或無條目時,返回預設值 |
否 |
Max或Min |
返回由Lamdba表示式表示的最大值或最小值 |
否 |
OrderBy OrderByDesceding |
基於Lambda表示式返回值對資料來源進行排序 |
是 |
Reverse |
反轉資料來源中資料項的順序 |
是 |
Select |
設計一個查詢結果 |
是 |
SelectMany |
把每個資料項投射到一個條目序列中,然後把所有的這些結果序列連線成一個序列 |
是 |
Single |
返回資料來源第一個條目,或者有多個匹配時丟擲異常 |
否 |
SingleOrDefault |
返回資料來源第一個條目,或無條目時,返回預設值;有多個條目匹配時,丟擲一個異常 |
否 |
Skip SkipWhile |
跳過指定數目的元素,或者當謂詞匹配時跳過 |
是 |
Sum |
對謂詞選定的詞求和 |
否 |
Take TakeWhile |
從資料來源的開始處選擇指定數目的元素,或當謂詞匹配時選擇條目 |
是 |
ToArray ToDictionary ToList |
把資料來源轉成陣列,字典,列表 |
否 |
Where |
過濾資料來源中與謂詞不匹配的條目 |
是 |
相關文章
- LINQ擴充套件方法套件
- in_list查詢與or擴充套件套件
- C# LINQ (語言整合查詢)C#
- [go-linq]-Go的.NET LINQ式查詢方法Go
- LINQ系列:LINQ to XML查詢XML
- 在EF Core 中使用AsQueryable擴充套件方法的拼接查詢套件
- Elasticsearch查詢語句語法Elasticsearch
- LINQ系列:LINQ to SQL Select查詢SQL
- C# LINQ查詢C#
- Laravel MongoDB 資料庫查詢擴充外掛 擴充原始 Laravel 類LaravelMongoDB資料庫
- MongoDB 常用查詢語法MongoDB
- 【LINQ技術】擴充套件特性和LINQ操作符套件
- 分頁查詢及其擴充應用案例
- 對於Linq查詢關鍵字及await,async非同步關鍵字的擴充套件使用AI非同步套件
- C# LINQ查詢 類C#
- LINQ中的模糊查詢
- Linq語法詳細
- 簡單的查詢語法
- Django:查詢基礎語法Django
- YCSB擴充套件-語句執行頻率,執行指定的測試查詢語句套件
- vue3 setup語法糖 擴充套件Vue套件
- LinQ查詢基礎(三)LINQ to ADO.net(1)LINQ to DataSet實現複雜資料查詢
- ASP.Net LINQ to SQl查詢ASP.NETSQL
- 【Linq】常用語法彙總
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 寒假補充專案-雜湊法的儲存與查詢(開發地址法)
- Linq 下的擴充套件方法太少了,您期待的 MoreLinq 來啦套件
- ElasticSearch基礎及查詢語法Elasticsearch
- Solr 客戶端查詢語法Solr客戶端
- VuePress 部落格優化之擴充 Markdown 語法Vue優化
- 方法快取與查詢快取
- Linq查詢之多個排序條件排序
- Linq兩個from查詢條件
- 入門MySQL——查詢語法練習MySql
- MongoRepository查詢資料常用語法Go
- 查詢document及他的擴充套件模型裡的內容時需要多表查詢嗎?還是有內建的方法套件模型
- 並查集擴充套件並查集套件
- Linq to xml 查詢所有的子節點XML