日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中集合接口关系笔记

發布時間:2023/12/10 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中集合接口关系笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IEnumerable

IEnumerable接口是所有集合類型的祖宗接口,其作用相當于Object類型之于其它類型。如果某個類型實現了IEnumerable接口,就意味著它可以被迭代訪問,也就可以稱之為集合類型(可枚舉);

ICollection

ICollection繼承于IEnumerable接口,并且擴展了IEnumerable接口。

主要擴展的功能有:

  • 新增了屬性Count,用于記錄集合元素個數

  • 支持添加元素和移除元素

  • 支持是否包含某元素

  • 支持清空集合等等

  • 對于任何實現了ICollection接口的集合,我們都可以通過第1條Count屬性獲取當前集合的元素數,所以這些集合也被稱為計數集合。

    IList

    IList接口直接繼承于ICollection接口和IEnumerable接口,并且擴展了通過索引操作集合的功能。

    主要擴展的功能有:

  • 通過索引獲取集合中某個元素

  • 通過元素獲取元素在集合中的索引值

  • 通過索引插入元素到集合指定位置

  • 移除集合指定索引處的元素

  • IDictionary

    IDictionary接口直接繼承于ICollection接口和IEnumerable接口,存儲的元素是鍵值對,擴展了通過操作鍵值對集合的功能。

    主要擴展的功能有:

  • 通過鍵KEY獲取值VALUE

  • 插入新的鍵值對{KEY:VALUE}

  • 是否包含KEY

  • 通過KEY移除鍵值對元素

  • =======================================================

    當我們使用到EF時,不得不說?IEnumerable(集合) 和 IQueryable(EF里的DbSet<T>) 里的 SQO 本質不一樣!:

    ? ? ? 集合 的 標準查詢運算符 方法 ,是來自于 System.Linq.Enumerable 里 給 IEnumerable 接口添加的擴展方法?

    ? ? ? EF上下文里的 DBSet<T> 里的 標準查詢運算符 方法,來自于 System.Linq.Queryable 里給 IQueryable接口 添加的擴展方法

    ? ? ? EF的集合中采用IQueryable接口原因是,延遲加載,也就是我們查詢出來的并不是集合而是

    IQueryable<UsersAddress> addrs = db.UsersAddresses.Where(a => a.udUId == 1); ? //以接口的方式返回

    ? ? ? 之所以返回一個接口,而不是具體的數據集合,因為我們并不知道后面是否還有查詢條件,所以采用這種方式去拼接查詢條件,如:

    ? ? ? addrs.Where(a=>a.mIsDel==fales);

    ? ? ? ?這個時候返回的還是接口,還是在拼接條件,并沒有生成sql語句去數據庫查詢,當我們使用到了集合中的變量時或者使用 addrs.ToList();

    ? ? ? ?就會生成SQL語句真正的去數據庫查詢數據。

    IEnumerable 又叫做本地查詢,因為就是在本地內存中的數據集合,IQueryable 的操作并沒有查詢數據,而是延遲查詢

    要有多努力才能對得起奔波的腳步和身上的期望

    總結

    以上是生活随笔為你收集整理的C#中集合接口关系笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。