c# IEnumerator.Current
时间: 2024-01-04 07:03:28 浏览: 134
`IEnumerator.Current` 是 C# 中 IEnumerator 接口中的一个属性,它返回集合中当前位置的元素。它是一个只读属性,返回的类型是 object。
在使用迭代器时,我们经常会使用 `IEnumerator` 接口和 `IEnumerator.Current` 属性来遍历集合中的元素。例如:
```csharp
IEnumerable<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
IEnumerator<int> enumerator = numbers.GetEnumerator();
while (enumerator.MoveNext())
{
int current = enumerator.Current;
Console.WriteLine(current);
}
```
在上述代码中,我们创建了一个整数列表,并获取了它的枚举器。然后我们使用 `MoveNext()` 方法将枚举器移到下一个位置,并使用 `Current` 属性获取当前位置的元素,最后输出到控制台。
相关问题
c# IEnumerator
在 C# 中,IEnumerator 是泛型接口 IEnumerable 的一部分,它代表了一个可以遍历集合的对象。当你需要迭代访问某个集合(如数组、列表、字典等)中的元素时,通常会使用 IEnumerator 或其更具体的实现了 IEnumerable<T> 接口的类型。
IEnumerator 定义了两个基本操作:
1. MoveNext(): 这个方法用于移动到集合的下一个元素。如果还有更多元素,则返回 true;否则返回 false,并且当前元素被视为已读取。
2. Current: 当 MoveNext() 返回 true 时,Current 属性返回当前有效元素的值。
使用 IEnumerator 的典型场景是在 foreach 循环中,例如:
```csharp
IEnumerator<int> enumerator = numbers.GetEnumerator(); // 假设 numbers 是一个整数列表
while (enumerator.MoveNext())
{
int currentValue = enumerator.Current;
Console.WriteLine(currentValue);
}
```
c# ienumerable和ienumerator
IEnumerable是一个接口,用于定义可枚举序列的行为,例如列表或数组。它允许在序列中迭代,但不允许对序列进行修改。
IEnumerator是另一个接口,它允许对可枚举序列进行迭代。IEnumerator有两个主要方法,MoveNext和Current。 MoveNext是用于移动到序列中的下一个元素的方法,而Current则允许获取当前元素的值。 通常,IEnumerator是在foreach循环中使用的。
阅读全文