• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Javen-Studio 咖啡小屋

            http://javenstudio.org - C++ Java 分布式 搜索引擎
            Naven's Research Laboratory - Thinking of Life, Imagination of Future

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              24 隨筆 :: 57 文章 :: 170 評(píng)論 :: 4 Trackbacks

            1           。NET語(yǔ)言級(jí)集成查詢能力(.NET Language Integrated Query

            (原文:The LINQ Project, .NET Language Integrated Query

             

            經(jīng)過(guò)了最近20年,面向?qū)ο缶幊碳夹g(shù)(object-oriented (OO) programming technologies)在工業(yè)領(lǐng)域的應(yīng)用已經(jīng)進(jìn)入了一個(gè)穩(wěn)定的發(fā)展階段。程序員現(xiàn)在都已經(jīng)認(rèn)同像 類(classes)、對(duì)象(objects)、方法(methods)這樣的語(yǔ)言特性。考察現(xiàn)在和下一代的技術(shù),一個(gè)新的編程技術(shù)的重大挑戰(zhàn)開(kāi)始呈現(xiàn)出來(lái),即面向?qū)ο蠹夹g(shù)誕生以來(lái)并沒(méi)有解決降低訪問(wèn)和整合信息數(shù)據(jù)(accessing and integrating information)的復(fù)雜度的問(wèn)題。其中兩個(gè)最主要訪問(wèn)的數(shù)據(jù)源與數(shù)據(jù)庫(kù)(database)和XML相關(guān)。

            LINQ提供了一條更常規(guī)的途徑即給.Net Framework添加一些可以應(yīng)用于所有信息源(all sources of information)的具有多種用途(general-purpose)的語(yǔ)法查詢特性(query facilities),這是比向開(kāi)發(fā)語(yǔ)言和運(yùn)行時(shí)(runtime)添加一些關(guān)系數(shù)據(jù)(relational)特性或者類似XML特性(XML-specific)更好的方式。這些語(yǔ)法特性就叫做.NET Language Integrated Query (LINQ)

            .NET Language Integrated Query定義了一組多用途的標(biāo)準(zhǔn)查詢操作符(standard query operators),可以在任何一種基于.NET平臺(tái)的開(kāi)發(fā)語(yǔ)言(.NET-based programming languagequery operators)中用一些簡(jiǎn)潔明了的語(yǔ)法就可以做到像訪問(wèn)、過(guò)濾、發(fā)送數(shù)據(jù)這樣一些操作。

            LONQ項(xiàng)目使用的可擴(kuò)展的查詢體系架構(gòu),可以提供同時(shí)處理XML數(shù)據(jù)和SQL數(shù)據(jù)的實(shí)現(xiàn)?;?/SPAN>XML (XLinq)的查詢操作符使用一種高效率的,易使用的,并且在內(nèi)存中處理的XML語(yǔ)法,如在主程序設(shè)計(jì)語(yǔ)言中使用的XPath/XQuery這樣的功能。基于關(guān)系數(shù)據(jù)(Dlinq)的查詢操作符即建立在綜合查詢語(yǔ)言(SQL-Based)語(yǔ)法基礎(chǔ)上的語(yǔ)法,則直接定義在CLR類型庫(kù)系統(tǒng)(CLR type system)中。

             

            1.1         標(biāo)準(zhǔn)查詢語(yǔ)法介紹

            下面用一段C# 3.0的程序來(lái)介紹標(biāo)準(zhǔn)查詢語(yǔ)法是如何使用的,該程序使用標(biāo)準(zhǔn)查詢操作符處理一個(gè) array 的數(shù)據(jù)內(nèi)容:

             

            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
            <string> expr = from s in names 
                                           where s.Length 
            == 5
                                           orderby s
                                           select s.ToUpper();

                
            foreach (string item in expr)
                  Console.WriteLine(item);
              }

            }

            編譯并運(yùn)行該程序?qū)⑤敵鋈缦陆Y(jié)果:

            BURKE
            DAVID
            FRANK


            為了了解語(yǔ)言級(jí)集成查詢是如何工作的,下面來(lái)剖析第一段程序:

             

            IEnumerable<string> expr = from s in names 
                                       where s.Length 
            == 5
                                       orderby s
                                       select s.ToUpper();

             

            局部變量 expr 使用一個(gè)查詢表達(dá)式(query expression)進(jìn)行初始化。通過(guò)從標(biāo)準(zhǔn)查詢操作符(standard query operators)或特定領(lǐng)域操作符(domain-specific operators)中申請(qǐng)一個(gè)或更多的查詢操作符(query operators),查詢表達(dá)式(query expression)可以訪問(wèn)一個(gè)或更多信息源(information sources)。這種查詢表達(dá)式使用三種標(biāo)準(zhǔn)的查詢操作符,即 WhereOrderBy,和 Select。

             

            Visual Basic 9.0 可以很好的支持 LINQ,在 Visual Basic 9.0 中實(shí)現(xiàn)上面語(yǔ)句(statement)的程序如下:

             

            Dim expr As IEnumerable(Of String= _
                               
            Select s.ToUpper() _
                               From s 
            in names _
                               Where s.Length 
            = 5 _
                               Order By s

             

            以上 C# Visual Basic 的語(yǔ)句展示了查詢的語(yǔ)法(query syntax),就像 foreach 語(yǔ)句一樣,查詢語(yǔ)法是一些可以讓你輕松的手工編寫(xiě)的便利速記語(yǔ)句。上面的語(yǔ)句跟下面用 C# 編寫(xiě)的更直觀的語(yǔ)法在語(yǔ)義上是一致的:

             

            IEnumerable<string> expr = names 
                                       .Where(s 
            => s.Length == 5
                                       .OrderBy(s 
            => s)
                                       .Select(s 
            => s.ToUpper());

             

            上面 Where、OrderBy Select 的操作符的參數(shù)被稱作 lambda 表達(dá)式(lambda expressions),這些分段的代碼很像委托(delegates,參見(jiàn)C++ 托管擴(kuò)展中的委托)。它們?cè)试S標(biāo)準(zhǔn)查詢操作符單獨(dú)地定義成方法(method),并且可以用句點(diǎn)符號(hào)(dot notation)分隔的一列語(yǔ)句(strung together)的方式來(lái)使用。連接起來(lái),這些方法就形成了一種可擴(kuò)展(extensible)的查詢語(yǔ)言的基本形式。



            待續(xù), 譯者Naven 2005-10-20
            posted on 2005-10-21 02:50 Javen-Studio 閱讀(1725) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # LINQ,.NET綜合查詢語(yǔ)言(.NET Language Integrated Query)[TrackBack] 2005-10-21 02:54 Naven
            Ping Back來(lái)自:blog.csdn.net  查看原文  回復(fù)  更多評(píng)論
              


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            精品久久香蕉国产线看观看亚洲| 国产精品久久精品| 久久电影网| 国产成年无码久久久久毛片| 色综合久久无码五十路人妻| 亚洲精品NV久久久久久久久久 | 亚洲乱码日产精品a级毛片久久| 91亚洲国产成人久久精品| 国产精品视频久久久| 77777亚洲午夜久久多喷| 久久久久久久亚洲Av无码| 精品久久久久久无码中文字幕一区 | 久久人人爽人人爽人人av东京热| 欧美色综合久久久久久| 要久久爱在线免费观看| 日韩欧美亚洲综合久久| 少妇精品久久久一区二区三区| 久久亚洲中文字幕精品有坂深雪| 日日噜噜夜夜狠狠久久丁香五月| 亚洲午夜久久久影院伊人| 久久99精品久久久久久hb无码| 久久精品黄AA片一区二区三区| 国产三级久久久精品麻豆三级 | 一本大道久久香蕉成人网| 久久婷婷午色综合夜啪| 欧美大香线蕉线伊人久久| 国产精品一久久香蕉国产线看| 99精品久久久久久久婷婷| 久久人人爽人人爽AV片| 久久精品国产亚洲AV不卡| 久久精品人人做人人爽电影蜜月 | 久久亚洲中文字幕精品一区| 一本久道久久综合狠狠躁AV| 久久婷婷国产综合精品| 国产福利电影一区二区三区,免费久久久久久久精 | 新狼窝色AV性久久久久久| 久久99久久99精品免视看动漫| 品成人欧美大片久久国产欧美| 久久精品综合网| 国产精品久久国产精麻豆99网站| 久久中文精品无码中文字幕|