C# 集合类
目录
使用简单集合
集合的类型
System.Collections.Generic 类
System.Collections.Concurrent 类
System.Collections 类
- System.Collections.ObjectModel(命名空间)-》 ReadOnlyCollection<T> 类
实现键/值对集合
使用 LINQ 访问集合
对集合排序
集合类的遍历方式
定义自定义集合
迭代器
集合类特有的遍历方式
var numbers = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int[] num={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; numbers.ForEach( number => Console.Write(number + " ")); Array.ForEach(num,(nu => Console.Write(nu + " ")));
通用集合类:
System.Collections.Generic 类
System.Collections.Concurrent 类
System.Collections 类
1、System.Collections.Generic 类
Dictionary<TKey,TValue> 表示基于键进行组织的键/值对的集合。
List<T> 表示可按索引访问的对象的列表。 提供用于对列表进行搜索、
Queue<T> 表示对象的先进先出 (FIFO) 集合。
SortedList<TKey,TValue> 表示基于相关的 IComparer<T> 实现按键进行排序的键/ 值对的集合。
Stack<T> 表示对象的后进先出 (LIFO) 集合。
2、System.Collections.Concurrent 类
只要多个线程同时访问集合,就应使用 System.Collections.Concurrent 命名空间中的类,而不是
System.Collections.Generic 和 System.Collections 命名空间中的相应类型
3、System.Collections 类
System.Collections 命名空间中的类不会将元素作为特别类型化的对象存储,而是作为
Object 类型的对象存储。会产生装箱/拆箱 造成性能上损失。
只要可能,则应使用 System.Collections.Generic 命名空间或 System.Collections.Concurrent 命名空间中的泛型
集合,而不是 System.Collections 命名空间中的旧类型。
ArrayList 表示对象的数组,这些对象的大小会根据需要动态增加。
Hashtable 表示根据键的哈希代码进行组织的键/值对的集合。
Queue 表示对象的先进先出 (FIFO) 集合。
Stack 表示对象的后进先出 (LIFO) 集合。
4、System.Collections.Specialized
System.Collections.Specialized 命名空间提供专门类型化以及强类型化的集合类,例如只包含字符串的集合以及
链接列表和混合字典。
5、ReadOnlyCollection<T> 类
用与保存函数的参数列表 例如lambda表达式的参数列表就是 这个类型
Expression<Func<Person, bool>> lambdaone = ex => ex.Name.Equals("张三"); //ss 返回值类型 就是ReadOnlyCollection<T> 类 var ss = lambdatwo.Parameters;