Задать вопрос
Zefirot
@Zefirot

Как создать массив объектов без размера (без List и Dictionary)?

По определённым причинам мне нужно создавать массивы объектов GameObject[] ArrayObj
Но я не всегда знаю сколько их будет, как я понимаю задать массив неопределённой величины нельзя, так же по определённым причинам я не хочу использовать List или Dictionary (не будем вдаваться в подробности почему)...
У меня есть пока что 2 идеи как это сделать:

1. Создать массив гораздо с большим элементов

GameObject[] ArrayObj = new GameObject[100];
задать к примеру туда 10 объектов а при вытягивать их так
foreach(GameObject obj in ArrayObj){ if(obj != null){ ........... }}


2. тоже самое что и первый вариант с использование временного массива для вычисления длины
GameObject[] ArrayObjTemp = new GameObject[100];
foreach(GameObject obj in ArrayObjTemp){ if(obj != null){ ++n }}
GameObject[] ArrayObj = new GameObject[n];
foreach(GameObject obj in ArrayObjTemp){ if(obj != null){ ArrayObj[n] = obj; ++n }}


Я понимаю что многие скажут "зачем такие велосипеды", но мне вот нужны массивы объектов без List и Dictionary...
Подскажите как лучше сделать задуманное?
  • Вопрос задан
  • 2186 просмотров
Подписаться 2 Простой 19 комментариев
Решения вопроса 1
profesor08
@profesor08
Создать массив чуть больше чем количество объектов. И в отдельной переменной вести учет их количества. Если вдруг объектов станет больше, то выделять новый массив большего размера, туда копировать данные их предыдущего и записывать новые.
GameObject[] ArrayObj = new GameObject[100];
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Почитал комментарии - причины, по которым вы хотите использовать массивы вместо List`1 являются
домыслами, и ни на чём не основаны.

На практике, никакой разницы между List и массивом, в плане памяти и скорости вы не почувствуете.
Так что берите System.Collections.Generic.List<T>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы