IEnumerable公开枚举器

// 摘要:

//     公开枚举器,该枚举器支持在非泛型集合上进行简单迭代。

[ComVisible(true)]

[Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")]

public interface IEnumerable

{

// 摘要:

//     返回一个循环访问集合的枚举器。

//

// 返回结果:

//     可用于循环访问集合的 System.Collections.IEnumerator 对象。

[DispId(-4)]

IEnumerator GetEnumerator();

}

方法:

方法 方法名称 说明
GetEnumerator GetEnumerator 获得一个循环访问集合的迭代器
AsParallel AsParallel 启用查询的并行化。 (由 ParallelEnumerable 定义。)(扩展方法)
AsQueryable AsQueryable 将 IEnumerable 转换为 IQueryable。 (由 Queryable 定义。)
Cast<TResult> Cast<TResult> 将 IEnumerable 的元素强制转换为指定的类型。 (由 Enumerable 定义。)
OfType<TResult> OfType<TResult> 根据指定类型筛选 IEnumerable 的元素。 (由 Enumerable 定义。)

备注:

IEnumerable 是可枚举的任何非泛型集合的接口。 有关此接口的泛形版本,请参见 System.Collections.Generic.IEnumerable<T>。 IEnumerable 包含一个方法,GetEnumerator,返回 IEnumerator。 IEnumerator 可以通过集合循环显示 Current 属性和 MoveNext 和 Reset 方法。

它是一个最优方法实现 IEnumerable 和 IEnumerator 在集合选件类启用 foreach (For Each 在 Visual Basic 中为) 语法,但是,IEnumerable 不需要实现。 如果集合中不实现IEnumerable,您还必须遵循迭代器窗体通过提供返回接口、选件类或结构的 GetEnumerator 方法支持此语法。 在使用 Visual Basic 时,必须提供 IEnumerator 实现,由GetEnumerator返回。 在开发使用 C# 必须提供时包含一个 Current 属性的选件类和 MoveNext 和 Reset 方法所描述的终结器 IEnumerator,但是,选件类不必实现IEnumerator。

示例程序:见IEnumerator枚举数接口示例

http://4837471.blog.51cto.com/4827471/1561773

时间: 2024-10-26 01:37:04

IEnumerable公开枚举器的相关文章

C#知识点-枚举器和迭代器

一.几个基本概念的理解 问题一:为什么数组可以使用foreach输出各元素 答:数组是可枚举类型,它实现了一个枚举器(enumerator)对象:枚举器知道各元素的次序并跟踪它们的位置,然后返回请求的当前项 问题二:不用foreach能不能遍历各元素 问题三:什么是可枚举类 答:可枚举类是指实现了IEnumerable接口的类:IEnumerable接口只有一个成员GetEnumerator方法,它返回对象的枚举器 问题四:什么是枚举器 答:实现了IEnumerator接口的枚举器包含三个函数成

C# 枚举器

1:枚举器和可枚举类型 我们知道使用foreach可以遍历数组中的元素.那么为什么数组可以被foreach语句处理呢,下面我们就进行讨论一下这个问题. 2:使用foreach语句 我们知道当我们使用foreach语句的时候,这个语句为我们依次取出了数组中的每一个元素. 例如下面的代码: 1 int[] arr = { 1, 2, 3, 4, 5, 6 }; 2 foreach( int arry in arr ) 3 { 4 Console.WriteLine("Array Value::{0}

枚举器对象与可枚举类型

1.IEnumerator与IEnumerable接口 IEnumerator接口:实现此接口的为枚举器类型,此接口包含3个方法Current.MoveNext.Reset. IEnumerable接口:实现此接口只需实现一个方法GetEnumerator得到一个枚举器. class ColorEnumerator : IEnumerator //实现枚举器接口:Current,MoveNext,Reset共3种方法 { string[] _colors; int _position = -1;

c# foreach枚举器

要是自己的类支持foreach ,必须在类中必须有GetEnumerator方法,该方法返回的是一个IEnumerator类型的枚举器; public class MyStruct { public string[] sName = new string[] { "张三", "李四", "王五" }; public IEnumerator GetEnumerator() { return new MyStructEnumerator(sName)

枚举器和linq

Iterator:枚举器 如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的. 我们将以创建一个简单化的List Box作为开始,它将包含一个8字符串的数组和一个整型,这个整型用于记录数组中已经添加了多少字符串.构造函数将对数组进行初始化并使用传递进来的参数填充它. using System; using System.Collections; using System.Collections.Generic; using Sys

C#枚举器接口IEnumerator的实现

原文(http://blog.csdn.net/phpxin123/article/details/7897226) 在C#中,如果一个类要使用foreach结构来实现迭代,就必须实现IEnumerable或IEnumerator接口.其中,IEnumerator接口定义了实现枚举器模式的方法IEnumerator.MoveNext()和IEnumerator.Reset()和成员属性IEnumerator.Count,而IEnumerable接口的唯一方法IEnumerable.GetEnum

枚举器和可枚举类型

枚举器和可枚举类型 前面我们已经知道了使用foreach语句可以遍历数组中的元素.但是为什么那么做呢? 原因是数组按需提供了一个叫做枚举器的对象.枚举器可以依次返回请求数组中的元素. 枚举器知道项的次序并且跟踪它所在序列中的位置,然后返回请求的当前项. 获取一个对象枚举器的方法是调用对象的GetEnumerator方法.实现GetEnumerator方法的类型叫做可枚举类型. 数组是可枚举类型. IEnumerator接口 实现了IEnumerator接口的枚举器包含3个函数成员:Current

枚举器和迭代器

一.枚举器和可枚举类型 1.0   一个简单的例子 1 static void Main(string[] args) 2 { 3 int[] arr = { 2,3,5,8}; 4 foreach (int item in arr) 5 { 6 Console.WriteLine("item's Value is :{0}",item); 7 } 8 Console.ReadKey(); 9 } 上边例子通过foreach依次取出数组中的元素并打印,为什么数组能够实现这种操作呢?原因

C#枚举器和迭代器

Foreach能够获取数组中的每一个元素,原因数组能够提供一个枚举器的对象.对于枚举器类型而言,必须有一个方法来获取它.获取一个对象枚举器的方法是调用对象的GetEnumerator方法.数组是可枚举类型. IEnumerator接口: 实现了IEnumerator接口的枚举器包含了Current.MoveNext以及Reset函数成员. Current是返回序列中当前位置的属性: 它是只读属性. 它返回object类型的引用,所以可以返回任何类型 MoveNext是枚举器位置前进到下一项的方法