C# 有一个集合 一个方法每调用一次就返回下一个集合中的元素
时间: 2024-03-03 18:49:14 浏览: 16
这个方法是 `GetEnumerator()`,它返回一个实现了 `IEnumerator` 接口的对象。通过调用这个对象的 `MoveNext()` 方法,可以依次访问集合中的每个元素。每调用一次 `MoveNext()` 方法,就会将集合中的指针指向下一个元素,并返回一个布尔值,表示是否成功移动到下一个元素。可以通过 `Current` 属性获取当前元素的值。示例代码如下:
```csharp
using System;
using System.Collections;
class Program {
static void Main(string[] args) {
ArrayList list = new ArrayList();
list.Add("apple");
list.Add("banana");
list.Add("orange");
IEnumerator enumerator = list.GetEnumerator();
while (enumerator.MoveNext()) {
Console.WriteLine(enumerator.Current);
}
}
}
```
输出结果为:
```
apple
banana
orange
```
相关问题
C# foreach如何快速获取集合下一个值
在C#中,可以使用`IEnumerator`接口和`MoveNext()`方法来遍历集合并获取下一个值。具体实现方式如下:
```csharp
// 假设myList是一个List<int>类型的集合
IEnumerator<int> enumerator = myList.GetEnumerator();
while (enumerator.MoveNext())
{
int nextValue = enumerator.Current; // 获取下一个值
Console.WriteLine(nextValue);
}
```
在这个示例中,使用`GetEnumerator()`方法获取一个`IEnumerator`接口类型的迭代器,然后使用`MoveNext()`方法遍历集合并获取下一个值,最后使用`Current`属性获取当前值。注意,在遍历集合期间,需要不断调用`MoveNext()`方法来获取下一个值,否则会出现异常。
使用C#绘制Visio,可以直接调用Shapes中的一个的图形吗
是的,您可以使用C#代码调用Shapes集合中的一个图形来绘制Visio图形。您可以使用以下代码示例来获取Shapes集合中的一个图形并将其绘制到Visio页面上:
```csharp
// 获取Visio应用程序对象
Visio.Application visioApp = new Visio.Application();
// 打开Visio文档
Visio.Document visioDoc = visioApp.Documents.Open("C:\\example.vsd");
// 获取页面对象
Visio.Page visioPage = visioDoc.Pages[1];
// 获取Shapes集合中的一个图形
Visio.Shape visioShape = visioPage.Shapes[1];
// 将图形绘制到页面上
visioShape.Draw(visioPage);
```
您可以根据需要修改此示例代码以获取Shapes集合中的不同图形并将其绘制到Visio页面上。