2024年6月12日发(作者:)

ienumerable 索引

在C#编程语言中,IEnumerable 接口描述了具有 foreach 迭代

功能的对象。该接口定义了一个方法 GetEnumerator,该方法返回一

个 IEnumerator 接口的实例,该实例允许对集合进行只读访问,同时

提供对插入和删除项的支持。

在使用IEnumerable接口时,我们可以很方便地对集合进行一次

迭代,但如果需要对集合进行多次迭代或跳过集合中的特定元素,则

需要使用IEnumerable 接口。此接口允许使用泛型类型 T 针对集

合中的每个元素进行访问,并提供一个方法,用于生成可重复使用的

集合枚举器。

下面,让我们看看如何使用IEnumerable 索引:

第一步:定义一个类实现IEnumerable接口

在开始使用IEnumerable索引之前,我们需要定义一个实现

IEnumerable接口的类。这个类的作用是充当迭代器,允许我们对

集合进行单个迭代操作。

下面是一个示例类定义:

```

public class MyCollection : IEnumerable

{

private readonly List _list = new List();

public void Add(T item)

{

_(item);

}

public IEnumerator GetEnumerator()

{

return _merator();

}

IEnumerator merator()

{

return GetEnumerator();

}

}

```

这个类使用泛型类型 T 来存储集合中的值,使用List来存储

这些值。我们还定义了一个 Add() 方法,用于向集合中添加新项。

该类还必须实现IEnumerable接口,并提供一个名称为

GetEnumerator()的公共方法来返回一个该集合的枚举器。

第二步:使用Enumerator进行单个迭代操作

一旦我们定义了这个类,就可以使用该类的实例来进行单个迭代

操作。这可以通过使用foreach循环来完成,例如:

```

MyCollection collection = new MyCollection();

(1);

(2);

(3);

foreach(int i in collection)

{

ine(i);

}

```

在上面的示例中,我们创建了一个 MyCollection 的实例,

并向该实例添加了三个整数值。然后,我们使用foreach循环对该集

合进行扫描,并在控制台上输出每个整数值。

第三步:使用索引访问集合元素

如果我们希望随机访问集合中的元素,则我们需要对集合使用索

引。为此,我们可以添加一个名为this的索引器来允许我们使用操作

符[]来访问集合元素。下面是一个示例索引器定义:

```

public T this[int index]

{

get

{

return _list[index];

}

set

{

_list[index] = value;

}

}

```

在上面的示例中,我们定义了一个名为 this 的索引器,它接受

一个整数类型的参数(即索引),并返回集合中具有相应索引的元素。

该索引器还允许我们使用 = 操作符来修改该元素的值。

现在,我们可以使用以下示例代码来访问集合的任何元素:

```

ine(collection[0]);

// 输出: 1

ine(collection[1]);

// 输出: 2

ine(collection[2]);

// 输出: 3

collection[1] = 5;

// 集合就变成了: {1, 5, 3}

```

在上面的示例中,我们使用collection[0]、collection[1]和

collection[2]来访问集合的前三个元素。

结论:

本文介绍了如何使用IEnumerable 索引来访问集合元素。我们首

先定义了一个类,该类实现了IEnumerable接口,并提供了一个

GetEnumerator()方法来返回该集合的枚举器。接下来,我们使用

foreach循环来对集合进行单个迭代操作,并使用this索引器来访问

集合中的任何元素。