首页 > 解决方案 > C#循环遍历名称列表并在每次循环时在不同的标签上显示名称

问题描述

我正在创建这个 Random Draw 应用程序。例如,用户输入 6 个名称,然后他们点击随机化按钮,名称随机显示在彼此旁边的标签中。因此,例如 index[0] 处的名称将播放 index[3] 处的名称,依此类推。我遇到的问题是我不确定如何循环并在不同的标签上显示每个名称。有没有办法计算我的标签并通过这种方式循环?这是我的代码,用于遍历列表中的名称并随机选择一个显示在第一个标签上。

for(int i = 0; i < names.Count; i++)
        {
            Random rand = new Random();
            int index = rand.Next(names.Count);
            var name = names[index];

            lblFirstName.Text = name;
            lblFirstName.Visible = true;
            names.RemoveAt(index);
        }

如您所见,名称将始终显示在 lblFirstName 上。我还有 5 个名为 lblSecondName 等的标签。

标签: c#listfor-looprandomlabel

解决方案


var firstNames = new [] { lblFirstName1, lblFirstName2 , lblFirstName3 , .......... };

for(int i = 0; i < names.Count; i++)
        {
            Random rand = new Random();
            int index = rand.Next(names.Count);
            var name = names[index];

            firstNames[i].Text = name;
            firstNames[i].Visible = true;
            names.RemoveAt(index);
        }  

推荐阅读