遍历列表令牌环C#
创始人
2024-12-03 19:30:22
0

以下是一个示例代码,演示如何在C#中实现遍历列表的令牌环:

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        List list = new List() { "A", "B", "C", "D", "E" };
        TokenRing tokenRing = new TokenRing(list);

        // 遍历列表
        foreach (string item in tokenRing)
        {
            Console.WriteLine(item);
        }
    }
}

class TokenRing : IEnumerable
{
    private List items;
    private int currentIndex;

    public TokenRing(List items)
    {
        this.items = items;
        currentIndex = 0;
    }

    public IEnumerator GetEnumerator()
    {
        return new TokenRingEnumerator(items);
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }

    private class TokenRingEnumerator : IEnumerator
    {
        private List items;
        private int currentIndex;

        public TokenRingEnumerator(List items)
        {
            this.items = items;
            currentIndex = -1;
        }

        public T Current => items[currentIndex];

        object System.Collections.IEnumerator.Current => Current;

        public void Dispose()
        {
        }

        public bool MoveNext()
        {
            currentIndex++;
            if (currentIndex >= items.Count)
            {
                currentIndex = 0;
            }
            return true;
        }

        public void Reset()
        {
            currentIndex = -1;
        }
    }
}

在上面的代码中,我们定义了一个TokenRing类,它实现了IEnumerable接口。该类接受一个List作为输入,并将其保存在items字段中。TokenRing类还定义了一个嵌套的TokenRingEnumerator类,它实现了IEnumerator接口,用于遍历列表。

TokenRingEnumerator类中,我们使用currentIndex字段来跟踪当前遍历的元素的索引。在MoveNext()方法中,我们首先将currentIndex递增1,然后检查是否超出列表长度。如果超出,我们将currentIndex重置为0,使遍历重新开始。

Main()方法中,我们创建了一个包含字符串元素的列表,并将其传递给TokenRing对象。然后,我们使用foreach循环遍历TokenRing对象,逐个打印列表中的元素。

输出结果为:

A
B
C
D
E

这样,我们就成功实现了在C#中遍历列表的令牌环。

相关内容

热门资讯

wepoke插件!wepoke... wepoke插件!wepoke管理系统(透视辅助)wePoke(一贯真的有挂);最新版2024是一款...
9分钟了解!心悦海南麻将有挂是... 9分钟了解!心悦海南麻将有挂是真的吗,天天福建十三张辅助工具,我来教教你(有挂软件)1.心悦海南麻将...
微扑克ai机器人!微扑克可以用... 微扑克ai机器人!微扑克可以用模拟器(透明挂)确实真的有挂1、实时微扑克开挂更新:用户可以随时随地访...
攻略讲解!赣牌圈的隐藏机制(透... 攻略讲解!赣牌圈的隐藏机制(透视辅助)好像是有挂(2022已更新)(哔哩哔哩)1、每一步都需要思考,...
总结教程!wepoke透明挂(... 总结教程!wepoke透明挂(wepok软件透明挂)wepoker(就是真的有挂);wepoker黑...
微扑克游戏辅助器!微扑克有挂,... 您好,微扑克这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家在这款游戏中...
九分钟了解!福建麻将有挂吗,心... 九分钟了解!福建麻将有挂吗,心悦麻将挂踢坑,存在挂教程(有挂解密);1、点击下载安装,心悦麻将挂踢坑...
发现一款!jj斗地主助赢神器(... 发现一款!jj斗地主助赢神器(辅助)一贯存在有挂(2021已更新)(哔哩哔哩)1、不需要AI权限,帮...
1分钟了解!安徽闲来麻将有挂吗... 1分钟了解!安徽闲来麻将有挂吗,边锋斗地主底牌怎么看,详细教程(有挂教程)1、构建自己的边锋斗地主底...
微扑克ai辅助!微扑克使用方法... 微扑克ai辅助!微扑克使用方法(透视辅助)都是有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...