顯示具有 Linq 標籤的文章。 顯示所有文章
顯示具有 Linq 標籤的文章。 顯示所有文章

LINQ簡介

簡單說明LINQ: 一套以IEmuerable介面定義一系列擴充方法(Extend Methods),並與C#整合的一種Search技術。

在C#的Search資料可以採用Lambda或LINQ:

    1. Lambda Sample:

List<string> Datas=List<string>{
    "a1","a2","b1","b3"};
IEmumerable<string> Result=Datas.Where(Data=>Data.StartWith("b"));

    2. LINQ Sample:

IEmumerable<string> Result=
    from Data in Datas
    where Data.StartWith("b")
    select Data;

LINQ依據的Search對象分類:
    1. Linq to Objects (Collection)
    2. Linq to XML (XPath)
    3. Linq to ADO.NET (SQL/DataSet)
    4. Linq to Entities

範例網站:
    LINQ 101 Samples: http://msdn.microsoft.com/en-us/vstudio/aa336746/

LINQ 語法介紹(Enumerable擴充方法)

整理完發現官方也有類似的整理: 資料操作技巧:LINQ 的標準查詢運算子
篩選
  • OfType:取得集合內指定型態的資料。
  • Where:取得符合運算結果的資料。
  • Contains:取得包含指定值的資料。
選取:
  • Select:取得指定物件或動態物件。
  • SelectMany:將輸入為集合物件的LIST轉成單一集合物件。
群組
  • GroupBy:以指定欄位進行群組化。
排序
  • OrderBy:以指定項目排序 。
  • OrderByDescending:以指定項目降冪排序。
  • ThenBy:以OrderBy結果進行第二次以後進行排序。
  • ThenByDescending:  以OrderBy結果進行第二次以後 進行 降冪排序 。
  • Reverse:將集合內容順序反轉。
彙總:
  • Aggregate:用累加的方式套用再續列上。
  • Average:計算序列數值的平均值。
  • Count:計算序列的數量。
  • LongCount:計算序列的數量,回傳int64型態數值。
  • Max:取得序列內最大值。
  • Min:取得序列內最小值。
  • Sum:取得序列數值的總數。
關聯
  • Join:將兩個序列項目進行關聯(類似SQL join)。
  • GroupJoin:將兩個序列以主要序列為主進行關聯(類似SQL Left Join)。
集合
  • Distinct:從 兩 序列中傳回獨特項目(去除重複項目)序列。
  • Except:從 兩 序列中取得差異項目資料。
  • Intersect:從兩序列中取得交集項目資料。
  • Union:將兩序列產生集合資料。
Create
  • DefaultEmpty:傳回型別資料,如果序列無資料則回傳空資料時的內容。
  • Empty:傳回指定型別空資料時的內容。
  • Range:取得序列中指定範圍內的資料。
  • Repeat:產生重複內容的序列。
計數
  • All:檢查序列內資料是否符合指定運算結果。
  • Any:檢查序列內資料是否有一筆資料符合指定運算結果。
切割
  • Skip:略過指定筆數資料。
  • SkipWhile:略過不符合條件的資料。
  • Take:只取得指定筆數的資料。
  • TakeWhile:只取得符合條件的資料。
  • First:取得第一筆資料。
  • FirstOrDefault:取得第一筆資料,如果無資料時,回傳該型態空資料之預設值。
  • Last:取得最後一筆資料。
  • LastOrDefault:取得最後一筆資料,如果無資料時,回傳該型態空資料之預設值。
  • ElementAt:取得指定位置資料。
  • ElementAtOrDefault: 取得指定位置資料,如果無資料時,回傳該型態空資料之預設值。
  • Single:取得序列中唯一的一筆資料,如果不是剛好一筆則exception。
  • SingleOrDefault:取得序列中唯一一筆資料,如果超過一筆資料則Exception,無資料則回傳空資料之預設值。
轉換
  • ToArray:將序列轉 換為 T[]型態。
  • ToList:將序列轉換為List型態。
  • ToDictionary:將序列轉換為Dictionary型態。
  • ToLookup: 將序列轉換為Lookup型態。
  • Cast:將序列內容轉換為指定型態。
  • AsEnumerable:轉型為 IEnumerable
  • Zip(4.0新增):依據指定運算是合併兩個序列資料行程新的序列。

橫式廣告