Задать вопрос
1Frosty
@1Frosty
Познаю новое

Как добавить в массив элементы?

Доброго времени суток. Мне необходимо добавить в массив новые элементы.
Вот код:
public class Game : MonoBehaviour {
    public CategoryList[] category = new CategoryList[9];
    public WordsList[] words = new WordsList[100];
}

    void Start() {
        for (int w = 0; w < words.Length; w++)
        {
            words[w].word = LangSystem.lng.sports[w];
            words[w].word = LangSystem.lng.geo[w]; // ТАКАЯ КОНСТРУКЦИЯ ЗАМЕНЯЕТ МАССИВ words[w].word. А МНЕ НУЖНО, ЧТОБЫ ЭТИ ЭЛЕМЕНТЫ ТУДА ДОБАВЛЯЛИСЬ
            Debug.Log(words[w].word);
       }

    [System.Serializable]
    public class CategoryList
    {
        public string[] catName = new string[9];
        public WordsList[] words;
    }

[System.Serializable]
    public class WordsList
    {
        public string word;
    }

В LangSystem.lng.geo[w] находятся фразы из json. Как не перезаписывать этот массив, а добавить туда элементы ?
  • Вопрос задан
  • 979 просмотров
Подписаться 1 Оценить 1 комментарий
Ответ пользователя Даниил Басманов К ответам на вопрос (3)
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Либо используйте Array.Resize:
int oldLength = words.Length;
Array.Resize(ref words, oldLength + newWords.Length);
for (int i = 0; i < newWords.Length; i++)
{
    words[i + oldLength] = newWords[i];
}

Либо вместо массива берите List:
foreach (var newWord in newWords)
{
    words.Add(newWord);
}
// Или так
words.AddRange(newWords);
Ответ написан