Как добавить значение в список в классе, которые имеют массив строк? - PullRequest
0 голосов
/ 14 февраля 2020

Я создаю турнирное приложение, которое будет иметь групповой этап и нокауты. Я использую класс со списком для создания разных групп, чтобы потом сохранить их в файл xml.

так выглядит мой список и класс ( xmlHandlerScript ).

public void AddGroup(int group,string[] team)
{

    groupDB.list.Add(new Groups { groupIndex = group, team = team });   
}

public GroupDatabse groupDB;

[System.Serializable]
public class Groups
{
    public int groupIndex;
    public string[] team;          
}

[System.Serializable]
public class GroupDatabse
{
    public List<Groups> list = new List<Groups>();
}

так я добавляю значение в список переменных.

 groups = new string[totalTeamsPerGroup];
 int  j = 0;

  for(int i = 0; i < totalGroups; i++)
  {
        for (int x = 0; x < totalTeamsPerGroup; x++)
        {

            groups[x] = teams[j];                   
            j++;
        }
            xmlHandlerScript.AddGroup(i, groups);

   }

Моя проблема в том, что когда у меня больше 1 " totalGroups " и я добавляю массив " groups " в список, команда string [] получает заменены последними командами [] в обоих моих массивах

примерно так:

Команды в турнире Группы после того, как я добавил их в список

1 Ответ

0 голосов
/ 14 февраля 2020

Попробуйте - вам нужно повторно инициализировать список групп для каждой итерации команды. Я использовал список вместо массива, поскольку списки в c# намного проще в управлении.

 int  j = 0;

  for(int i = 0; i < totalGroups; i++)
  {
       var groups = new List<string>();
        for (int x = 0; x < totalTeamsPerGroup; x++)
        {

            groups.Add(teams[j]);                   
            j++;
        }
            xmlHandlerScript.AddGroup(i, groups);

   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...