使用For Loop和Foreach在C#中创建列表

时间:2018-06-20 21:14:54

标签: c#

我正在尝试为我正在开发的游戏创建草稿订单,但是我无法使其按我的需要运行。我需要5个回合,每个回合的编号正确,每个回合的每个顺位应该编号1-10。这是我正在使用的代码:

List<Draft> _draftorder = new List<Draft>();

foreach (Team t in teams)
{
    for (int i = 1; i <= 5; i++)
    {
        _draftorder.Add(new Draft()
        {
            city = t.city,
            round = i++,
            pick = i++,
        });
    }
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我发现当代码与需求的逐步工作流程匹配且变量名称与需求中的概念匹配时,逻辑更容易遵循。

List<Draft> _draftorder = new List<Draft>();

for (int currentRound=1; currentRound<=10; currentRound++)
{
    int pickOrder = 1;
    foreach (Team t in teams)
    {
        _draftorder.Add(new Draft()
        {
            city = t.city,
            round = currentRound,
            pick = pickOrder++
        });
    }
}

答案 1 :(得分:0)

您需要添加一个额外的for循环,并将foreach循环放入第一个for循环中:

List<Draft> _draftorder = new List<Draft>();

// Allow 5 rounds
for (int i = 1; i <= 5; i++)
{
    // Allow every team to pick some drafts
    foreach (Team t in teams)
    {
        // Limit them to a specific amount of picks per round
        for (int j = 1; j <= 10; j++)
        {
            _draftorder.Add(new Draft()
            {
                city = t.city,
                round = i,
                pick = j,
            });
        }
    }
}