• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              24 隨筆 :: 57 文章 :: 170 評論 :: 4 Trackbacks

            4.3         Select SelectMany 的比較(Select vs. SelectMany

            Select 操作符需要轉換函數(transform function)用來為信息源序列(source sequence)中的每一個值(each value)產生一個值(produce one value)。如果你的轉換函數返回了一個自己也是一個序列的值,它等于(is up to)消費者(consumer)手工地(manually)穿越(traverse)子序列(sub-sequences)。例于,考察下面的程序,使用已存在的 String.Split 方法分拆這些字符串成一段段的部分(breaks strings into tokens):

             

            string[] text = "Albert was here"
                              
            "Burke slept late"
                              
            "Connor is happy" }
            ;

            var tokens 
            = text.Select(s => s.Split(' '));

            foreach (string[] line in tokens)
                
            foreach (string token in line)
                    Console.Write(
            "{0}.", token);

             

            運行這段程序,將打印出如下的文本:

             

            Albert.was.here.Burke.slept.late.Connor.is.happy.

             

            理想情況下(Ideally),我們希望我們的查詢返回一個包含一個個 token 段的結合的序列(coalesced sequence),而不是暴露(exposed)中間的(intermediatestring[] 給消費者(consumer)。為了達到這個目的(To achieve this),我們使用 SelectMany 操作符而不用 Select 操作符。SelectMany 操作符使用起來比 Select 更簡單。它們不同的(differs in)地方是轉換函數(transform function)被期望返回一個序列,然后才再 SelectMany 操作符展開來(expanded by)。這里是一段我們用 SelectMany 重寫的程序:

             

            string[] text = "Albert was here"
                              
            "Burke slept late"
                              
            "Connor is happy" }
            ;

            var tokens 
            = text.SelectMany(s => s.Split(' '));

            foreach (string token in tokens)
                Console.Write(
            "{0}.", token);

             

            使用 SelectMany 引起每一個中間的序列(each intermediate sequence)像普通賦值的一部分(part of normal evaluation)一樣被展開(expanded)。

             

             

             

             

            待續, 錯誤難免,請批評指正,譯者Naven 2005-10-24

            posted on 2005-10-25 03:01 Javen-Studio 閱讀(3560) 評論(0)  編輯 收藏 引用
            久久婷婷五月综合97色| 一级做a爰片久久毛片人呢| 亚洲国产天堂久久久久久| 99久久国产综合精品女同图片| 久久精品亚洲AV久久久无码| 日日躁夜夜躁狠狠久久AV| 99久久精品免费看国产| 欧美国产成人久久精品| 久久久久久综合一区中文字幕 | 奇米影视7777久久精品人人爽| 亚洲国产一成人久久精品| 91性高湖久久久久| 国产69精品久久久久观看软件| 日韩亚洲欧美久久久www综合网| 综合久久给合久久狠狠狠97色| 国产99久久精品一区二区| 久久精品极品盛宴观看| 久久综合九色综合欧美狠狠| 香蕉久久av一区二区三区| 久久久久亚洲AV成人网| 99国产精品久久久久久久成人热| 色婷婷久久综合中文久久一本| 色偷偷888欧美精品久久久| 色欲久久久天天天综合网精品| 日韩久久无码免费毛片软件 | 久久久久亚洲?V成人无码| 久久国产精品77777| 国产亚洲美女精品久久久2020| 久久婷婷色综合一区二区| 国产亚州精品女人久久久久久 | 狠色狠色狠狠色综合久久| 蜜臀久久99精品久久久久久小说 | 色综合久久综合中文综合网| 欧美久久久久久午夜精品| 91精品国产色综久久| 亚洲国产成人久久综合碰碰动漫3d| 久久夜色精品国产噜噜噜亚洲AV | 久久妇女高潮几次MBA| 伊人色综合九久久天天蜜桃| 久久婷婷五月综合97色直播| 精品熟女少妇aⅴ免费久久|