Linq匿名委托類(lèi)型
在向大家詳細(xì)介紹Linq匿名委托類(lèi)型之前,首先讓大家看下LINQ示例,然后全面介紹Linq匿名委托類(lèi)型。
先來(lái)看一個(gè)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);
- }
- }
編譯并運(yùn)行,將輸出:
◆BURKE
◆DAVID
◆FRANK
看吶!MS無(wú)疑給第三方ORM框架沉重一擊,LINQ可以方便且直觀地類(lèi)SQL形式操縱IEnumerable集合和數(shù)據(jù)。更激動(dòng)人心的是C#一貫的風(fēng)格,層層解構(gòu),LINQ語(yǔ)法可以用C#基本語(yǔ)法來(lái)解釋。支持LINQ,用到:
Linq匿名委托類(lèi)型(方法/函數(shù))
C#2語(yǔ)法,省略委托類(lèi)型定義。
◆Func:一種委托類(lèi)型,一般用匿名委托賦值
◆擴(kuò)展表達(dá)式:含this指針的靜態(tài)類(lèi)的靜態(tài)函數(shù),其中一個(gè)參數(shù)用this修飾,另一個(gè)參數(shù)是Func類(lèi)型。可用實(shí)例方法的形式調(diào)用。一般用點(diǎn)操作符串聯(lián)調(diào)用。
◆λ表達(dá)式:Expression類(lèi)可以解析λ表達(dá)式。匿名委托實(shí)例化的簡(jiǎn)化形式,類(lèi)似于這種形式:n=>n > 5;其中n是參數(shù)。
◆yield:例:yield return i,延遲返回計(jì)算結(jié)果。
◆對(duì)象設(shè)值實(shí)例化:命名屬性初始化,調(diào)用setter方法用命名參數(shù)初始化成員變量。用于實(shí)例ORM中對(duì)象屬性與字段名的映射。集合初始化也可用數(shù)組初始化語(yǔ)法。
◆匿名類(lèi)型:引入var關(guān)鍵字,根據(jù)初始化表達(dá)式,編譯器智能判斷聲名的變量所屬類(lèi)型,看起來(lái)越來(lái)越像腳本語(yǔ)言了。
以上介紹Linq匿名委托類(lèi)型,希望微軟的天才們帶領(lǐng)C#越走越遠(yuǎn)。
【編輯推薦】