首页 > 解决方案 > 如何遍历 timer_tick 事件上的对象列表?

问题描述

我有一个清单

static List<Participants> soop = ParticipantRepository.GetAllParticipants();

它有大约800个项目。然后是 alabel和 a timer。在timer_tick,我想随机显示其中一项。这是该事件的代码

private void timer1_Tick(object sender, EventArgs e) {
            foreach (var participants in soop)
            {
                a = participants.RollNumber;
                label1.Text = a;
                break;
            }
            counter++;
            if (counter == 200) {
                timer1.Stop();
                pictureBox5.Visible = false;
                counter = 0;
            }
        }

到目前为止,我还无法实现随机功能,因为只显示了一个 RollNumber,然后计时器会花费时间并用完。我究竟做错了什么?

标签: c#.netwinformsrandom

解决方案


我建议使用随机类。

    Random randomGen = new Random();
    private void timer1_Tick(object sender, EventArgs e)
    {

        var i = randomGen.Next(0, soop.Count);
        label1.Text = soop[i].RollNumber;

        counter++;
        if (counter == 200)
        {
            timer1.Stop();
            pictureBox5.Visible = false;
            counter = 0;
        }
    }

推荐阅读