集合和数据结构
如果将紧密相关的数据组合到一个集合中,则能够更有效地处理这些紧密相关的数据。 代替编写不同的代码来处理每一单独的对象,您可以使用相同的调用代码来处理一个集合的所有元素。
若要管理集合,请使用 System.Array 类以及 System.Collections、System.Collections.Generic 和 System.Collections.Concurrent 命令空间中的类,添加、移除和修改集合中的单个元素或某个范围的元素。 甚至可以将整个集合复制到另一个集合中。
某些 System.Collections 类具有排序功能并且大多数都经过了索引。 自动处理内存管理,集合的容量会根据需要扩展。 当访问集合成员时同步提供线程安全。 某些 System.Collections 类可以生成包装,从而使集合是只读的或大小固定的。 任何 System.Collections 类都可以生成自己的枚举器,从而简化对元素的循环访问。
在 .NET Framework 2.0 版中,泛型集合类提供了新功能,并使得创建强类型集合变得容易。 请参见 System.Collections.Generic 和 System.Collections.ObjectModel 命名空间。
在 .NET Framework 4 版中,System.Collections.Concurrent 命名空间中的集合可提供有效的线程安全操作,以便从多个线程访问集合项。
您可以通过 LINQ to Objects 功能使用 LINQ 查询来访问内存中的对象,但条件是该对象类型要实现 System.Collections.IEnumerable 或 System.Collections.Generic.IEnumerable<T> 接口。 LINQ 查询提供了一种通用的数据访问模式;与标准 foreach 循环相比,它通常更加简洁,可读性更高;这种查询可提供筛选、排序和分组功能。 LINQ 查询还可提高性能。 有关更多信息,请参见 LINQ to Objects和并行 LINQ (PLINQ)。
相关主题
标题 |
说明 |
---|---|
描述集合类型的定义,并介绍 .NET Framework 类库中的泛型和非泛型集合类型之间的一些区别。 |
|
描述诸如 System.Array、System.Collections.Generic.List<T> 和 System.Collections.Generic.Dictionary<TKey, TValue> 等常用泛型和非泛型集合类型。 |
|
描述 System.Collections.BitArray 和 System.Collections.Specialized.BitVector32 集合类型。 |
|
描述诸如 System.Collections.Specialized.NameValueCollection、System.Collections.Specialized.StringDictionary 和 System.Collections.Specialized.StringCollection 等特殊用途的集合。 |
|
介绍支持从多个线程进行安全有效的并发访问的集合类型,例如 System.Collections.Concurrent.BlockingCollection<T> 和 System.Collections.Concurrent.ConcurrentBag<T>。 |
|
讨论如何选择最合适的集合类型,如何枚举集合,如何将集合与多个线程一起使用以及如何对集合进行排序。 |
|
讨论泛型集合类型的使用。 |