首页 > 代码库 > 《C#本质论》读书笔记(16)构建自定义集合

《C#本质论》读书笔记(16)构建自定义集合

16.1 更多集合接口
16.1.1 IList<T>与IDictionary<TKey,TValue>
16.1.2 ICollection<T>
16.2 主要集合类
16.2.1 列表集合:List<T>
16.2.2 全序
16.2.3 搜索List<T>
16.2.4 字典集合:Dictonary<TKey,TValue>
16.2.5 已排序集合:SortedDictionary<TKey,TValue>和SortedList<T>
16.2.6 栈集合:Stack<T>
16.2.7 队列集合:Queue<T>
16.2.8 链表:LinkedList<T>
16.3 提供索引器
16.4 返回null或者空集合
16.5 迭代器
16.5.1 迭代器的定义
16.5.2 迭代器语法
16.5.3 从迭代器生成值
16.5.4 迭代器和状态
16.5.5 更多的迭代器例子
16.5.6 将yield return语句放到循环中
16.5.7 取消更多的迭代:yield break
16.5.8 在单个类中创建多个迭代器
16.5.9 yield语句的要求

16.1 更多集合接口

集合类(这里指IEnumerable层次结构)实现的接口层次结构
技术分享

16.1.1 IList<T>与IDictionary<TKey,TValue>

字典类一般只按照键进行索引,而不按位置索引。
列表“键”总是一个整数,“键集”总是从0开始的非负整数的一个连续集合。
解决数据存储或数据获取问题时,考虑  IList<T>(侧重位置索引获取值)与 IDictionary<TKey,TValue>(侧重通过键来获取值)。

16.1.2 ICollection<T>

IList<T>与IDictionary<TKey,TValue>都实现ICollection<T>。
包含两个成员:Count和CopyTo()。

16.2 主要集合类

共有5类关键的集合类,所有泛型类都位于 System.Collections.Generic命名空间。

16.2.1 列表集合:List<T>

List<T>具有与数组相似的属性。关键在于会自动的扩展,也可以显示调用TrimToSize()或Capacity来缩小。
技术分享


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
List<string> list = new List<string>();
 
// Lists automatically expand as elements
// are added.
list.Add("Sneezy");
list.Add("Happy");
list.Add("Dopey");
list.Add("Doc");
list.Add("Sleepy");
list.Add("Bashful");
list.Add("Grumpy");
 
list.Sort();
 
Console.WriteLine(
    "In alphabetical order {0} is the "
    + "first dwarf while {1} is the last.",
    list[0], list[6]);
 
list.Remove("Grumpy");





16.1.2 ICollection<T>


16.2.2 全序

16.1.2 ICollection<T>

16.2.3 搜索List<T>

16.1.2 ICollection<T>

16.2.4 字典集合:Dictonary<TKey,TValue>

16.1.2 ICollection<T>

16.2.5 已排序集合:SortedDictionary<TKey,TValue>和SortedList<T>

16.1.2 ICollection<T>

16.2.6 栈集合:Stack<T>

16.1.2 ICollection<T>

16.2.7 队列集合:Queue<T>

16.1.2 ICollection<T>

16.2.8 链表:LinkedList<T>

16.3 提供索引器


16.3 提供索引器

16.4 返回null或者空集合


16.4 返回null或者空集合

16.5 迭代器


16.5 迭代器

16.1.2 ICollection<T>

16.5.1 迭代器的定义

16.1.2 ICollection<T>

16.5.2 迭代器语法

16.1.2 ICollection<T>

16.5.3 从迭代器生成值

16.1.2 ICollection<T>

16.5.4 迭代器和状态

16.1.2 ICollection<T>

16.5.5 更多的迭代器例子

16.1.2 ICollection<T>

16.5.6 将yield return语句放到循环中

16.1.2 ICollection<T>

16.5.7 取消更多的迭代:yield break

16.1.2 ICollection<T>

16.5.8 在单个类中创建多个迭代器

16.1.2 ICollection<T>

16.5.9 yield语句的要求




来自为知笔记(Wiz)


《C#本质论》读书笔记(16)构建自定义集合