Linq匿名委托類型
在向大家詳細介紹Linq匿名委托類型之前,首先讓大家看下LINQ示例,然后全面介紹Linq匿名委托類型。
先來看一個LINQ示例:
- using System;
- using System.Query;
- using System.Collections.Generic;
- class app ...{
- static void Main() ...{
- string[] names = ...{ "Burke", "Connor", "Frank",
- "Everett", "Albert", "George",
- "Harris", "David" };
- IEnumerable expr = from s in names
- where s.Length == 5
- orderby s
- select s.ToUpper();
- foreach (string item in expr)
- Console.WriteLine(item);
- }
- }
編譯并運行,將輸出:
◆BURKE
◆DAVID
◆FRANK
看吶!MS無疑給第三方ORM框架沉重一擊,LINQ可以方便且直觀地類SQL形式操縱IEnumerable集合和數據。更激動人心的是C#一貫的風格,層層解構,LINQ語法可以用C#基本語法來解釋。支持LINQ,用到:
Linq匿名委托類型(方法/函數)
C#2語法,省略委托類型定義。
◆Func:一種委托類型,一般用匿名委托賦值
◆擴展表達式:含this指針的靜態類的靜態函數,其中一個參數用this修飾,另一個參數是Func類型。可用實例方法的形式調用。一般用點操作符串聯調用。
◆λ表達式:Expression類可以解析λ表達式。匿名委托實例化的簡化形式,類似于這種形式:n=>n > 5;其中n是參數。
◆yield:例:yield return i,延遲返回計算結果。
◆對象設值實例化:命名屬性初始化,調用setter方法用命名參數初始化成員變量。用于實例ORM中對象屬性與字段名的映射。集合初始化也可用數組初始化語法。
◆匿名類型:引入var關鍵字,根據初始化表達式,編譯器智能判斷聲名的變量所屬類型,看起來越來越像腳本語言了。
以上介紹Linq匿名委托類型,希望微軟的天才們帶領C#越走越遠。
【編輯推薦】