<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C# 中奇妙的函數 -- 2. First 和 Single -- 你是她心中的第一還是唯一?

      Linq中的 First 和 Single 在實際工作中會經常看到,從字面意思上很容易明白,一個是取列表中的第一個元素,一個是取到唯一的元素。如果你想再進一步的了解,可以讀讀本文。

      下文參考翻譯自:
      C#/.NET Little Wonders: First() and Single() - Similar Yet Different

      First() - 返回序列中的第一個元素

      事實上這個方法有四種選擇:

      • First()
        • 返回序列中的第一個,如果沒有元素存在就拋出異常 InvalidOperationException.
      • First(Predicate<TSource>)
        • 基于你提供的條件返回序列中的第一個,如果沒有元素存在就拋出異常 InvalidOperationException.
      • FirstOrDefault()
        • 返回序列中的第一個,如果沒有元素存在就返回默認的元素default(TSource).
      • FirstOrDefault(Predicate<TSource>)
        • 基于你提供的條件返回序列中的第一個,如果沒有元素存在就返回默認的元素default(TSource).

      First的核心思想是如果序列中存在一個以上元素的時候,就返回第一個。這也意味著當發現第一個元素的時候,被調用的這個方法就立刻退出了不會再去遍歷尋找剩下的元素了。

      舉例看看,定義一個類:

       

      給他一些初始化的列表:有空的,一個元素的,多個元素的

       

      好,當我們使用First的時候,他們會有什么結果呢?

       

      另外請注意在下面的情況下會拋出異常:

       

      最后,當我們使用帶有Default的方法時,下面的情況會返回空值而不是拋出異常:

       

      Single() – 有且僅有一個

      像First一樣,Single 也有四種表現形式:

    3. Single()
      • 返回序列中的唯一的元素,如果沒有元素存在就拋出異常 InvalidOperationException, 如果多于一個,也拋出異常InvalidOperationException.
    4. Single(Predicate<TSource>)
      • 基于你提供的條件返回序列中的唯一的元素,如果沒有元素存在就拋出異常 InvalidOperationException, 如果多于一個,拋出異常InvalidOperationException.  SingleOrDefault()
    5. SingleOrDefault()
    6. 返回序列中的唯一的元素,如果沒有元素存在就返回默認的元素default(TSource), 如果多于一個,拋出異常InvalidOperationException.
    7. SingleOrDefault(Predicate<TSource>)
      • 基于你提供的條件返回序列中的唯一的元素,如果沒有元素存在就返回默認的元素default(TSource), 如果多于一個,拋出異常InvalidOperationException.
    8. 請注意,關鍵的區別主要在這里: 如果有一個以上的元素,這個家族的方法會永遠拋出InvalidOperationException異常。  還要注意,這意味著,即使Single 方法得到了一個匹配的元素,它仍然有可能要掃描其余的枚舉。 這可以使 Single 效率要低一點。

      下面一些例子返回什么呢?

       

      從下面的例子,我們看到Single 和 First 的相似性, 不同的在于滿足結果的序列多于一個元素的情況

       

      結論

      First 和 Single 都有一個避免當沒有元素滿足要求而拋出異常的選擇,當你不確定想要獲取的元素是否存在的時候,可以用…OrDefault(), 因為 null 可以很好的表示“找到不”。

      當你不在乎是否有重復項目或者不可能有重復元素存在的時候,可以使用First; 當你想要核實是否有重復元素存在的時候當然就選擇Single。

      謝謝你閱讀本文,更多.NET話題請到:

      喜樂的ASP.NET

      posted @ 2011-05-14 02:42  擁有的都是恩典  閱讀(13484)  評論(6)    收藏  舉報
      主站蜘蛛池模板: 国产精品亚洲综合色区丝瓜| 国产情侣草莓视频在线| 婷婷四虎东京热无码群交双飞视频| 天堂一区人妻无码| 亚洲AV无码破坏版在线观看| 午夜福利啪啪片| 一区二区三区在线 | 欧洲| 凸凹人妻人人澡人人添| 亚洲国产精品热久久一区| 余庆县| 亚洲精品国产精品不乱码| 亚洲综合精品一区二区三区| 中文字幕在线视频不卡一区二区| 18禁男女爽爽爽午夜网站免费| 高清国产av一区二区三区| 亚洲色欲久久久久综合网| 亚洲女人天堂成人av在线| 襄汾县| 99在线精品国自产拍中文字幕 | 国产精品美女乱子伦高| 91精品午夜福利在线观看| 双柏县| 玩弄放荡人妻少妇系列| 白嫩少妇激情无码| 加勒比色综合久久久久久久久| 黑人大荫道bbwbbb高潮潮喷| 亚洲国产日韩精品一区二区三区 | 十八禁日本一区二区三区| 国产激情艳情在线看视频| 亚洲精品一区二区妖精| 成人免费无码av| 野花韩国高清电影| 精品无码成人久久久久久| 最近中文国语字幕在线播放| 亚洲情A成黄在线观看动漫尤物| 亚洲一区二区三成人精品| 无套中出极品少妇白浆| 亚洲乱色一区二区三区丝袜| 成人欧美一区二区三区在线观看| 国产午夜福利视频合集| 成人精品一区日本无码网|