集合和数据结构

如果将紧密相关的数据组合到一个集合中,则能够更有效地处理这些紧密相关的数据。 代替编写不同的代码来处理每一单独的对象,您可以使用相同的调用代码来处理一个集合的所有元素。

若要管理集合,请使用 System.Array 类以及 System.CollectionsSystem.Collections.GenericSystem.Collections.Concurrent 命令空间中的类,添加、移除和修改集合中的单个元素或某个范围的元素。 甚至可以将整个集合复制到另一个集合中。

某些 System.Collections 类具有排序功能并且大多数都经过了索引。 自动处理内存管理,集合的容量会根据需要扩展。 当访问集合成员时同步提供线程安全。 某些 System.Collections 类可以生成包装,从而使集合是只读的或大小固定的。 任何 System.Collections 类都可以生成自己的枚举器,从而简化对元素的循环访问。

在 .NET Framework 2.0 版中,泛型集合类提供了新功能,并使得创建强类型集合变得容易。 请参见 System.Collections.GenericSystem.Collections.ObjectModel 命名空间。

在 .NET Framework 4 版中,System.Collections.Concurrent 命名空间中的集合可提供有效的线程安全操作,以便从多个线程访问集合项。

您可以通过 LINQ to Objects 功能使用 LINQ 查询来访问内存中的对象,但条件是该对象类型要实现 System.Collections.IEnumerableSystem.Collections.Generic.IEnumerable<T> 接口。 LINQ 查询提供了一种通用的数据访问模式;与标准 foreach 循环相比,它通常更加简洁,可读性更高;这种查询可提供筛选、排序和分组功能。 LINQ 查询还可提高性能。 有关更多信息,请参见 LINQ to Objects并行 LINQ (PLINQ)

相关主题

标题

说明

定义集合

描述集合类型的定义,并介绍 .NET Framework 类库中的泛型和非泛型集合类型之间的一些区别。

常用的集合类型

描述诸如 System.ArraySystem.Collections.Generic.List<T>System.Collections.Generic.Dictionary<TKey, TValue> 等常用泛型和非泛型集合类型。

位集合

描述 System.Collections.BitArraySystem.Collections.Specialized.BitVector32 集合类型。

专用集合

描述诸如 System.Collections.Specialized.NameValueCollectionSystem.Collections.Specialized.StringDictionarySystem.Collections.Specialized.StringCollection 等特殊用途的集合。

线程安全集合

介绍支持从多个线程进行安全有效的并发访问的集合类型,例如 System.Collections.Concurrent.BlockingCollection<T>System.Collections.Concurrent.ConcurrentBag<T>

创建和操作集合

讨论如何选择最合适的集合类型,如何枚举集合,如何将集合与多个线程一起使用以及如何对集合进行排序。

何时使用泛型集合

讨论泛型集合类型的使用。

参考

System.Array

System.Collections

System.Collections.Concurrent

System.Collections.Generic

System.Collections.Specialized

System.Linq