国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何選擇使用IEnumerable,ICollection,IList

2019-11-14 16:04:56
字體:
來源:轉載
供稿:網友

IEnumerable, ICollection, IList,每種接口只適合某些特定場景,如何區別使用呢?

 

IEnumerable接口,只提供了一個獲取迭代器的方法,這也是為什么可以使用foreach遍歷實現了IEnumerable接口集合的原因。

 

public interface IEnumerable
{
    IEnumerator GetEnumerator();
}

 

ICollection實現了IEnumerable接口,因此,除了擁有IEnumerable接口的能力,還包括其它能力。

 

public interface ICollection : IEnumerable
{
    int Count{get;}
    bool IsSynchronized{get;}
    Object SyncRoot{get;}
    IEnumerator GetEnumerator();
    void CopyTo(Array array, int index);
}

 

IList同時實現了ICollection和IEnumerable接口,在2個接口的基礎上,可以添加、移除或清空集合,還提供了根據索引訪問集合元素。

 

public interface IList : ICollection, IEnumerable
{
    bool IsFixedSize{get;}
    bool IsReadOnly{get;}
    Object this[int index] {get;set;}
    int Add(Object value);
    void Clear();
    bool Contains(Object value);
    int IndexOf(Object value);
    void Insert(int index, Object value);
    void Remove(Object value);
    void RemoveAt(int index);
}

 

總結:

● 如果只想遍歷集合,使用IEnumerable, IEnumerable<T>
● 如果想遍歷、修改集合,以及需要延遲加載的導航屬性,使用ICollection, ICollection<T>
● 如果想遍歷、修改、添加、清空、使用索引,使用IList, IList<T>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新民市| 通海县| 潞城市| 化隆| 探索| 高尔夫| 葵青区| 金溪县| 留坝县| 油尖旺区| 秦安县| 黎平县| 涟水县| 扶余县| 东港市| 长治市| 桃江县| 万荣县| 津南区| 栖霞市| 都江堰市| 霍州市| 永胜县| 正定县| 鄱阳县| 阜新| 京山县| 南和县| 西盟| 三亚市| 洛南县| 敦煌市| 新巴尔虎左旗| 迭部县| 通山县| 措美县| 岐山县| 五常市| 永兴县| 阿拉善右旗| 田阳县|