从列表中选择一个int

时间:2018-02-06 15:22:48

标签: c# random visual-studio-2017

这是我到目前为止所得到的,但如果某人已经在团队中,则不会考虑到这一点。即。

亚历克斯和约翰将被随机分配到球队中。目前该系统将Alex放入第1组,它不会知道有人在第1组,也可能将John放在第1组。这个逻辑还需要反映出是否有4个团队和16个人需要排序等等。有人可以帮忙吗?

List<int> teamsLeft = new List<int>();

            foreach (var item in namesOfAllPlayers)
            {
                if (!teamsLeft.Any())
                {
                    for (int i = 0; i < noOfTeams.Value; i++)
                        teamsLeft.Add(i + 1);
                }

                Random rnd = new Random();
                int team = rnd.Next(1, Convert.ToInt32(noOfTeams.Value));

在确定球队中的哪个球员后,它会从teamsLeft中提取该球队号码并继续。一旦所有球队被提取出来,意味着每次比以前有更多的球被放置,那么它将刷新球队左侧。

1 个答案:

答案 0 :(得分:0)

当我在做我的解决方案时@MarcGravell提出了类似的建议。没关系,我还是会给出我的解决方案。我不是在洗牌,只是随机排队:

此代码:

var players = new List<string> { "Abe", "Brian", "Chloé", "Dan", "Eve", "Finn", "Gina", "Henry",
"Ivan", "Joe", "Kate", "Lou", "Max", "Nina", "Oona", "Paul"};
var randomPlayers = new List<string>(); 

var random = new Random();

for (int i=0; i<15; i++)
{
    int place = random.Next(0, i+1);
    randomPlayers.Insert(place, players[i]);
}

制作随机播放器列表。现在你可以把前四个队伍拿到队伍1,将接下来的四个队伍拿到队伍2,依此类推,或者你可以做旧的事情,你可以排队,并给他们编号1,2,3,4,1,2。 ..