老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

LINQ入門(上篇)

來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=163
GPS平臺、網站建設、軟件開發、系統運維,找森大網絡科技!
http://cnsendnet.taobao.com

公司主營業務:網站設計制作、做網站、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯推出長海免費做網站回饋大家。

到現在為止你還未觸碰LINQ,那進來吧 —— LINQ入門(上篇)
前 言
最近和我們老大一起做技術面試(我是旁聽的),發現前來面試的沒幾個掌握甚至是丁點了解LINQ。這讓我很納悶,LINQ伴隨2008一起發布至今難道大家真的沒時間去了解一下或者學習一下這個應用基礎嗎。甚至問及有些人LINQ是什么,答題者想都不想 LINQ TO SQL, 崩潰!沒錯,LINQ是可以TO SQL,但是除了SQL,LINQ就無所作為了?非也。因此在這里和大家一起分享學習LINQ。本文適合以下讀者, 如果你是不符合者請賞臉捧個場,3Q
?   從未觸碰過LINQ的
?   對LINQ有過了解但是從未實戰過的
?   打算學習LINQ的
簡 介
LINQ 是什么?引用官方術語“語言集成查詢 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一項創新功能,它在對象領域和數據領域之間架起了一座橋梁。” 那么LINQ給我們帶來了什么,請看以下例子:
問:有序列A=int[]{1,2,3,4,5,6,7,8,0}; B=int[]{2,4,7,8,9}。請求出包含A和B共同值的序列C。
如果按照原來的思路,那么編碼也許如下:

List c = new List();

foreach(int a in A){
    foreach(int b in b) {
       if (a==b) {
           c.add(a);
       }
    }
}

是不是覺得上面這段雖然沒什么問題,但是很丑陋。如果我們引用LINQ來編寫呢:

IEnumerable C = from a in A
                     from b in B
                     where a==b
                     select a;

是不是覺得很爽,一句話簡單的把上面丑陋的代碼給KO掉了。也許你看不懂上面的語法,沒關系請繼續往下閱讀。
語 法
1. LINQ所處在的主要命名空間:System.Linq
2. LINQ的處理的核心對象就是IEnumerable可枚舉對象也包括了泛型枚舉,換句話說當你要處理的對象為IEnumerable類型對象時即可使用LINQ操作它。且在沒有經過其他處理的情況下將返回一個新的IEnumerable序列,注意LINQ有一個特性“延遲加載”這個將在后續說明。

  1. 關鍵字(摘自MSDN):  
      from : 指定數據源和范圍變量(類似于迭代變量)。
      where: 根據一個或多個由邏輯“與”和邏輯“或”運算符(&& 或 ||)分隔的布爾表達式篩選源元素。
      select: 指定當執行查詢時返回的序列中的元素將具有的類型和形式。
      group: 按照指定的鍵值對查詢結果進行分組。
      into: 提供一個標識符,它可以充當對 join、group 或 select 子句的結果的引用。
      orderby: 基于元素類型的默認比較器按升序或降序對查詢結果進行排序。
      join: 基于兩個指定匹配條件之間的相等比較來聯接兩個數據源。
      let: 引入一個用于存儲查詢表達式中的子表達式結果的范圍變量。
      in: join 子句中的上下文關鍵字。
      on: join 子句中的上下文關鍵字。
      equals: join 子句中的上下文關鍵字。
      by: group 子句中的上下文關鍵字。
      ascending:orderby 子句中的上下文關鍵字。
      descending:orderby 子句中的上下文關鍵字。
    4. 語法說明,每個LINQ語句都以from作為開頭,以select作為結束,這點和T-SQL語法不通的切記先入為主的思考。其他關鍵字如where則類似T-SQL作為篩選判斷條件。
    樣例:IEnumerable nums = from n in nums where .... orderby... select....
    擴 展
    從 .net 3.0 開始 MS 就給我們引進了其他一些新的特性,由于篇幅關系在這里給大家簡單的介紹幾個LINQ常用到的特性:
    1. 關鍵字 var :
      指示編譯器根據初始化語句右側的表達式推斷變量的類型。 推斷類型可以是內置類型、匿名類型、用戶定義類型或 .NET Framework 類庫中定義的類型。這樣我們就可以在上述的LINQ表達式中 例如可簡寫為: var nums = from n in nums where .... orderby... select....
    2. 匿名類型:  
      匿名類型提供了一種方便的方法,可用來將一組只讀屬性封裝到單個對象中,而無需首先顯式定義一個類型。 類型名由編譯器生成,并且不能在源代碼級使用。 每個屬性的類型由編譯器推斷。例如:var obj = new {A="a", B="b"}; 而LINQ則可以為 var nums = from obj in objs select new {obj.A, obj.B}
    案 例
    普通查詢
    var query = from num in num
    select num.ProperyA
    篩選查詢
    var query = from obj in objs
    where obj.ProperyA > Condition
    select obj
    分組查詢
    var query = from obj in objs
    group obj by obj.PropertyA into g
    orderby g.Key
    select g;
    注意,在此示例里,關鍵字 into 不是必須的,使用 into 時,必須繼續編寫該查詢,并最終用一個 select 語句或另一個 group 子句結束該查詢。
    內聯查詢
    var query= from obj1 in objs1
    join obj2 in objs2 on obj1.ID equals obj2.ID
    select new { A= obj1.Property, B = obj2.Property };
    左外聯查詢
    var query = from obj1 in objs1
    join obj2 in objs2 on obj1.ID equals obj2.Obj1ID into g
    from subpet in g.DefaultIfEmpty()
    select new { P1 = obj1.P1, P2 = (subpet == null ? null : subpet.P2 ) };
    注意,此處涉及到.net 3.5 新特性靜態擴展方法(后續介紹不影響理解)DefaultIfEmpty():如果序列為空,則返回一個具有默認值的單一實例集合
    總 結
    本文到此,對LINQ的入門進行了簡單介紹。你可以進行簡單的實戰應用了。后續將和大家一起分享學習 什么是靜態擴展方法,它與LINQ有什么關系。LINQ的涉及應用如:linq to sql, lint to entites, linq to xml, linq to dataset 等等。敬請期待。
    最后感謝閱讀,有說得不對的地方請多多指正。
    資 源
    linqpad:一個學習LINQ的好工具http://www.linqpad.net/
    linq開發資源:http://www.codeproject.com/KB/linq/

    來自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=163
    GPS平臺、網站建設、軟件開發、系統運維,找森大網絡科技!
    http://cnsendnet.taobao.com


網頁名稱:LINQ入門(上篇)
URL分享:http://www.xueling.net.cn/article/jcgccs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美色图bt | 欧美最猛黑人XXXX黑人猛交98 | 国产最好看的级SUV卡毛 | 久久国产精品99久久久久久老狼 | 成年精品 | 午夜18禁自慰jk爆乳网站 | 亚洲永久无码3D动漫一区 | 日本三级毛片 | 国产AV国片精品无套内谢蜜臀 | 国产亚洲影视在线视频播放 | 看看黄色片子 | 波多野结衣在线视频免费观看 | 久久久久91视频 | 69精品久久 | 伊人久久大香伊蕉在人线观看热v | 久久精品99久久香蕉国产色戒 | 亚洲午夜理论片在线观看 | 亚洲AV噜噜狠狠网址蜜桃 | 少妇做爰高潮呻吟A片免费 亚洲AV永久无码天堂影院黑人 | 色小姐av | 久久久久亚洲ai毛片换脸星大全 | 亚洲经典国产欧美 | 久久久女人 | 欧美黑人巨大久久久精品一区小蓝 | 真人作爱视频免费 | 青青操操 | 男人操女人视频免费看 | 久久精品人妻无码一区二区三区 | 日欧一级片 | 麻豆黄色网 | 亚洲日韩国产二区无码 | 精品乱码久久久 | 欧美一级黄色免费 | 中文字字幕码一二区 | 亚洲a视 | 又爽又黄又无遮挡的视频在线观看 | A片免费观看一区二区三一区 | 九九日视频 | 亚洲欧美日本国产专区一区 | 毛片a级毛片免费播放100 | 年轻的老师4 |