IEnumerable clr
时间: 2025-03-05 11:45:45 浏览: 8
IEnumerable 接口概述
IEnumerable<T>
是 .NET 中用于表示可以枚举的对象集合的一个泛型接口[^1]。此接口提供了一种标准的方法来遍历一组对象,而无需暴露底层的数据结构。
主要成员方法
- GetEnumerator(): 返回一个迭代器,该迭代器支持对集合进行简单遍历。这是
IEnumerable<T>
的唯一必需成员。
public IEnumerator<T> GetEnumerator();
当实现了这个接口时,通常会返回一个新的枚举示例,它能够跟踪当前的位置以及访问下一个元素的能力。
使用示例
下面是一个简单的例子展示了如何定义和使用实现了 IEnumerable<int>
的类:
using System;
using System.Collections.Generic;
class NumberSequence : IEnumerable<int>
{
private int start;
private int end;
public NumberSequence(int s, int e)
{
this.start = s;
this.end = e;
}
public IEnumerator<int> GetEnumerator()
{
for (int i = start; i <= end; i++)
yield return i;
}
// For non-generic compatibility with older code.
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
// Usage example:
var sequence = new NumberSequence(1, 5);
foreach (var num in sequence)
{
Console.WriteLine(num); // Outputs numbers from 1 through 5 inclusive
}
这段代码创建了一个名为 NumberSequence
的自定义类型,它可以像任何其他实现了 IEnumerable<int>
的集合一样被用来执行 foreach 循环。
需要注意的是,在某些情况下将 IEnumerable<T>
转换为 IObservable<T>
可能不合适,因为前者依赖于阻塞同步调用的上下文,这可能不适用于后者所期望的异步场景。
阅读全文
相关推荐

















