C#IEnumberable<>

在C#中,IEnumerable<>是一个泛型接口,用于表示一个可枚举的集合。它定义了一个用于遍历集合元素的枚举器(enumerator)。通过实现IEnumerable<>接口,我们可以使用foreach语句或LINQ查询等方式来迭代访问集合中的元素。

IEnumerable<>接口定义了一个名为GetEnumerator的方法,该方法返回一个实现了IEnumerator<>接口的枚举器。IEnumerator<>接口提供了对集合中元素的访问和操作,它包含了MoveNext、Current和Reset等方法,用于在集合上进行迭代。

以下是一个使用IEnumerable<>接口的简单示例,展示了如何自定义一个可枚举的集合:

public class MyCollection<T> : IEnumerable<T>
{
    // 声明一个私有变量 items,用于存储集合元素
    private List<T> items = new List<T>();

    // 添加元素到集合的方法
    public void Add(T item)
    {
        items.Add(item);
    }

    // 实现 IEnumerable<T> 接口的 GetEnumerator 方法
    public IEnumerator<T> GetEnumerator()
    {
        return items.GetEnumerator();
    }

    // 实现 IEnumerable 接口的 GetEnumerator 方法
    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // 创建一个 MyCollection<int> 类型的集合实例
        MyCollection<int> collection = new MyCollection<int>();

        // 向集合中添加元素
        collection.Add(1);
        collection.Add(2);
        collection.Add(3);

        // 使用 foreach 循环遍历集合中的元素,并输出到控制台
        foreach (int item in collection)
        {
            Console.WriteLine(item);
        }
    }
}

在这段代码中:

  1. MyCollection<T> 类是一个泛型类,用于表示一个集合。它实现了 IEnumerable<T> 接口,表示该类的实例可以被枚举遍历。

  2. items 是一个私有变量,用于存储集合中的元素。它的类型是 List<T>,即一个泛型列表,用于动态地存储元素。

  3. Add 方法用于向集合中添加元素。它接受一个泛型类型的参数 item,并将其添加到 items 列表中。

  4. GetEnumerator 方法是 IEnumerable<T> 接口的实现方法。它返回一个 IEnumerator<T> 类型的枚举器,用于在集合上进行迭代。

  5. IEnumerable.GetEnumerator 方法是 IEnumerable 接口的实现方法。它返回一个非泛型的枚举器,通过调用上面的 GetEnumerator 方法来实现。

  6. Program 类的 Main 方法中,我们创建了一个 MyCollection<int> 类型的集合实例 collection

  7. 使用 collection.Add 方法将整数 1、2 和 3 添加到集合中。

  8. 使用 foreach 循环遍历集合中的元素,并将每个元素输出到控制台。


在上面的示例中,我们首先定义了一个名为MyCollection的类,实现了IEnumerable接口。这个类内部使用了List来存储元素,并提供了一个Add方法用于向集合中添加元素。

通过实现GetEnumerator方法来返回一个枚举器,我们使得MyCollection类可以被遍历。在Main方法中,我们创建了一个MyCollection实例,并使用foreach语句遍历集合中的元素并输出到控制台。

通过实现IEnumerable<>接口,我们可以方便地对自定义集合进行迭代操作,使得代码更加简洁、可读性更高。**

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周杰伦fans

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值