真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

LINQ有哪些強(qiáng)大功能

這篇文章主要介紹了LINQ有哪些強(qiáng)大功能,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、濉溪網(wǎng)絡(luò)推廣、小程序開發(fā)、濉溪網(wǎng)絡(luò)營(yíng)銷、濉溪企業(yè)策劃、濉溪品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供濉溪建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

LINQ,即Language Integrated Query。很多人熟悉SQL語言,用它來操作數(shù)據(jù)庫非常方便?,F(xiàn)在在C#3.0中也可以使用相同的語法來操作各種數(shù)據(jù),包括數(shù)組,文件,數(shù)據(jù)庫等。由于LINQ的東西比較多,本文主要介紹LINQ。

下面看一個(gè)例子,程序員就應(yīng)該拿代碼說話:

class Program  ...{  static void Main(string[] args)  ...{  string[] names=...{"Everett", "Albert", "George", "Harris", "David" };  var items=from name in names  where name.Length>=6  orderby name  select name.ToUpper();  foreach(var item in items)  Console.WriteLine(item);  }  }

是不是對(duì)上面的from,where,orderby等單詞很熟悉,我們可以很輕松的像查詢數(shù)據(jù)庫一樣查詢某些數(shù)組。其實(shí)上述表達(dá)式等價(jià)于下面這樣的寫法:

  1. var items=names.Where(name=>name.Length>=6).
    OrderBy(name=>name).Select(name=>name.ToUpper());  

那么我們?yōu)槭裁茨茉跀?shù)組上應(yīng)用這些方法呢,本來數(shù)組上沒有這些方法?。炕貞浺幌挛覀?cè)瓉碚f過的內(nèi)容,擴(kuò)展方法,對(duì),我們?cè)谶@里看到擴(kuò)展方法的用武之地了。而且我們也看到了Lambda表達(dá)式的應(yīng)用使得語句更加簡(jiǎn)潔,易懂。這些擴(kuò)展方法定義在哪里呢?我們可以在System.LINQ這個(gè)程序集里面看到這樣的定義:

namespace System.LINQ ...{   public static class Enumerable ...{   public static IEnumerable Where(   this IEnumerable source, Func predicate) ...{    foreach (T item in source)   if (predicate(item)  }  yield return item;   }  }  }

這里我們可以清晰的看到許多this關(guān)鍵字,這些正是擴(kuò)展方法的標(biāo)志。若果我們對(duì)Lambda表達(dá)式不是很熟悉的化,上面的LINQ語句還可以進(jìn)一步轉(zhuǎn)化成委托的形式。

Func filter = delegate (string s) ...{return s.Length >=6;};   Func extract = delegate (string s) ...{return s; };   Func project = delegate (string s) ...{return s.ToUpper(); };   var items = names.Where(filter) .OrderBy(extract) .Select(project);

有一個(gè)問題,我們會(huì)注意到items前面是用var做它的類型,那么有沒有提出這樣的疑問,這個(gè)var到底是什么類型呢?我們仔細(xì)看一下那個(gè)System.LINQ程序集,就會(huì)發(fā)現(xiàn)擴(kuò)轉(zhuǎn)方法返回的是IEnumerable類型,一個(gè)泛型接口,沒錯(cuò)var就是這個(gè)泛型接口。還有一個(gè)問題就是當(dāng)names滿足什么條件時(shí),我們可以應(yīng)用LINQ表達(dá)式進(jìn)行查詢。這一點(diǎn)還要從那個(gè)程序集上仔細(xì)觀察。我們會(huì)發(fā)現(xiàn)有一個(gè)source參數(shù),根據(jù)擴(kuò)展方法的語法我們知道這個(gè)source參數(shù)就是調(diào)用了這個(gè)方法的對(duì)象。那么我們可以推斷出這個(gè)對(duì)象要能轉(zhuǎn)換成IEnumerable。那什么類型可以成功轉(zhuǎn)換呢?很顯然只要實(shí)現(xiàn)了 IEnumerable這個(gè)泛型接口的類型都可以轉(zhuǎn)換。譬如數(shù)組類型,List,等等。當(dāng)我們還可以自己定義類型只要實(shí)現(xiàn)了這個(gè)接口就可以用LINQ對(duì)這個(gè)類型進(jìn)行操作。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“LINQ有哪些強(qiáng)大功能”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


新聞標(biāo)題:LINQ有哪些強(qiáng)大功能
URL網(wǎng)址:http://weahome.cn/article/gscgph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部