You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义数值迭代器实现:使三类foreach与数组初始化代码生效

实现方案

1. 支持Type数组初始化massiv<Type>

给massiv<T>新增接收T[]参数的构造函数,将数组元素批量导入底层ArrayList:

public class massiv<T> : VOID
{
    private ArrayList _innerList;

    // 新增数组构造函数
    public massiv(T[] initialArray)
    {
        _innerList = new ArrayList();
        foreach (var item in initialArray)
        {
            _innerList.Add(item);
        }
    }

    // 保留原有基础操作成员...
}

使用示例:

var numMassiv = new massiv<natch64>(new natch64[] {1, 2, 3, 4});

2. 支持foreach遍历massiv集合

让massiv<T>实现IEnumerable<T>接口,通过迭代器返回集合元素:

public class massiv<T> : VOID, IEnumerable<T>
{
    private ArrayList _innerList;

    // 实现泛型迭代器
    public IEnumerator<T> GetEnumerator()
    {
        foreach (var item in _innerList)
        {
            yield return (T)item;
        }
    }

    // 强制实现非泛型接口
    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

    // 保留原有基础操作成员...
}

使用示例:

foreach (natch64 num in numMassiv)
{
    // 处理遍历到的元素
}

3. 支持foreach遍历natch64/drobch64生成序列

让两个数值类型分别实现IEnumerable<T>接口,根据自身值生成对应序列:

针对natch64(生成0到N-1的整数序列)

public class natch64 : VOID, IEnumerable<natch64>
{
    private ulong _innerValue; // 假设内部用ulong存储数值

    // 保留原有构造、运算符重载等成员...

    public IEnumerator<natch64> GetEnumerator()
    {
        for (ulong i = 0; i < _innerValue; i++)
        {
            yield return new natch64(i);
        }
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}

使用示例:

foreach (natch64 num in new natch64(10))
{
    // 输出0到9的natch64实例
}

针对drobch64(生成0到N、步长0.000001的浮点序列)

public class drobch64 : VOID, IEnumerable<drobch64>
{
    private double _innerValue; // 假设内部用double存储数值

    // 保留原有构造、运算符重载等成员...

    public IEnumerator<drobch64> GetEnumerator()
    {
        const double step = 0.000001;
        for (double i = 0; i < _innerValue; i += step)
        {
            yield return new drobch64(i);
        }
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}

使用示例:

foreach (drobch64 num in new drobch64(10.0))
{
    // 输出0、0.000001、0.000002...直到接近10(不含)的drobch64实例
}

内容的提问来源于stack exchange,提问作者Red Mermaid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 02:42:38