免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      C#-Linq源碼解析之Any

      前言

      在Dotnet開發(fā)過程中,Any作為IEnumerable的擴(kuò)展方法,十分常用。本文對Any方法的關(guān)鍵源碼進(jìn)行簡要分析,以方便大家日后更好的使用該方法。

      使用

      Any 確定序列中是否包含元素或存在元素滿足指定條件

      看這樣一個例子,我們判斷集合中是否存在元素

      List lstUserInforMations = new List();bool flag = lstUserInforMations.Any();flag= lstUserInforMations.Any(o=>o.Sex==”男”);

      當(dāng)然flag都為false。

      我們現(xiàn)在給集合賦值

      //賦值lstUserInforMations = new List { new UserInforMation{UserName=”張三”,Sex=”男”}, new UserInforMation{UserName=”李四”,Sex=”女”},};flag = lstUserInforMations.Any();flag = lstUserInforMations.Any(o => o.Sex == “男”);

      只要有一個條件滿足,當(dāng)然就會返回true了

      源碼解析

      第一個方法

      public static bool Any(this IEnumerable source)

      參數(shù)

      返回值

      • bool

      該方法表示 只要有一個元素存在就返回True,否則返回false。

      IEnumerable修飾我們的源元素類型,那么我們就知道源元素是一個 可以獲得循環(huán)訪問集合的枚舉器那么我們就可以使用GetEnumerator這個方法進(jìn)行迭代了。

      然后我們在使用MoveNext方法,來遍歷集合的元素!

      源碼:

      public static bool Any(this IEnumerable source){ if (source == null) { throw null; } using (IEnumerator enumerator = source.GetEnumerator()){ if (enumerator.MoveNext()) { eturn true; } }return false;}

      第二個方法

      public static bool Any(this IEnumerable source, Func predicate)

      參數(shù)

      • source 元素的類型
      • Func predicate 該委托用于判斷某元素是否滿足某個條件,這個func委托接收一個和源元素相同的參數(shù)類型,并返回一個bool!

      返回值

      • bool

      我們在第一個方法上改進(jìn),使用foreach遍歷源元素,如果有一個滿足我們就返回true

      源碼:

      public static bool Any(this IEnumerable source, Func predicate) { if (source == null) { throw null; } if (predicate == null) { throw null; } foreach (TSource item in source) { if (predicate(item)) { return true; } } return false;}

      總結(jié)

      在我們了解了any的源碼后,我們在判斷集合為空的時(shí)候是不是使用Any() 比Count() 更好一點(diǎn)了呢?歡迎留言討論

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      吉利汽車?yán)峡偫顣L寡?,特斯拉真正目的不是造車?何出此言?/span>
      上一篇 2022年6月14日 06:07
      下一篇 2022年6月14日 06:08

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息