C# 中获取整个 ArrayList 的枚举器

17 Mar 2025 | 4 分钟阅读

枚举器 (Enumerators) 在每种编程语言中都扮演着至关重要的角色。枚举器用于遍历集合。当有人声明集合并在其中存储一些值时,他们会遍历集合以访问集合中的值。这些枚举器提供了一种按顺序访问集合中每个元素的方法。这可以通过多种方式实现。

枚举器的优势

使用枚举器的一些优势如下:

  • 枚举器用于语言集成查询 (LINQ) 操作中。这种查询通常涉及使用 IEnumerable 遍历集合。通过使用枚举器,还可以进行多次和并发的迭代。这些方法内存效率高,开发人员无需创建集合的额外副本进行迭代。
  • 枚举器也可以为自定义集合类实现。可以使用 'IEnumerator''IEnumerable' 来实现枚举器。这种灵活性允许开发人员创建和使用他们自己的可迭代数据结构。
  • 枚举器是提供一致、标准化接口的迭代工具,可增强代码的可读性、兼容性和可维护性。在编程中处理集合时,这些枚举器非常有用。
  • 使用其枚举器遍历 ArrayList 将花费线性时间,其时间复杂度为 O(n)。这里,n 代表集合 ArrayList 的大小。这意味着时间复杂度将随着集合元素数量的增长而线性增长。枚举器的空间复杂度极小。它们在迭代过程中维护有关当前位置的信息。有许多优化技术可用于遍历集合。

使用 GetEnumerator 方法

C# 中的 ArrayList.GetEnumerator 方法用于获取一个枚举器,该枚举器可遍历 ArrayList 的元素。

语法

它具有以下语法:

此方法不接受任何参数。此方法将返回 IEnumerator 接口,该接口提供了遍历集合的方式。

示例

让我们看一个示例程序来说明 C# 中的 GetEnumerator 方法。

输出

Getting an enumerator for the entire ArrayList in C#

说明

这个 C# 程序用于遍历数组列表。首先,创建一个名为 myArrayListArrayList,并插入三个字符串。之后,使用 ArrayList.GetEnumerator 方法获取整个数组列表的枚举器。

我们可以使用枚举器的 while 循环和 MoveNext 方法来访问或遍历数组列表。然后,打印出 myArrayList 中的元素。这些元素是字符串。

使用 foreach 循环

让我们看一个示例程序,说明如何在 C# 中使用 foreach 循环 遍历数组列表。

输出

Getting an enumerator for the entire ArrayList in C#

说明

在此程序中,创建了一个名为 myArrayList 的数组列表来存储字符串类型的元素。将三个字符串 "India"、"America" 和 "Russia" 添加到数组列表中。之后,使用 foreach 循环 访问数组列表中的字符串。此循环自动利用 ArrayList 的枚举器。然后,将元素打印到控制台。输出表明我们也可以使用 foreach 循环来枚举数组列表。

直接使用 IEnumerable 接口

让我们看一个示例程序,说明如何在 C# 中使用 IEnumerable 接口 遍历数组列表。

输出

Getting an enumerator for the entire ArrayList in C#

说明

这个程序也像上面的程序一样初始化了一个名为 myArrayListArrayList。通过使用 Add 方法,向数组列表中添加了五个元素。之后,直接使用 IEnumerable 接口获取一个枚举器。使用 while 循环遍历所有数组元素,MoveNext 方法用于获取数组中的下一个元素,而 Current 用于获取该次迭代中的值。之后,打印出数组中的所有元素。