2014-10-13 3 views
-3

Я вижу сообщение на форуме, а некоторые говорят, что массив в Unity3D не является реальным массивом. Ну, я этого не понимаю.C-sharp Arrays с Unity3d

Мой первый вопрос: как добавить элементы в массив? Является ли это Array.Push() или Array.Add()?

Мой второй вопрос - как очистить элемент от массива? Является ли это Array.Clear (arrname, 0, arrname.Length)?

Мой третий вопрос - это массивы типа int [], string [] и т. Д., Как очистить элементы и добавить элементы? На это я не нашел реального ответа.

Извините за мой плохой английский, и я немного сомневаюсь здесь. Я надеюсь, что кто-то может объяснить мне об этом. Спасибо. На ваш день.

+2

Какое сообщение на форуме утверждает, что массивы Unity3D не являются «настоящими» массивами? Это звучит неверно для начала - и похоже, что вы действительно должны спрашивать человека, который изначально опубликовал то, что они имели в виду ... –

+2

Что такое «реальный» массив? Что такое не настоящий массив? Какая разница? – spender

+0

Вам нужно свести свой вопрос до одной проблемы, и желательно, чтобы вы не задавали простые вопросы, ответы на которые являются одним поиском google *, например, использование хорошо документированных классов, таких как 'Array'. (* Другие поисковые системы доступны.) –

ответ

0

В C# вы можете не изменение массива длина так или иначе (путем добавления/удаления/очистки элементов); но вы можете воссоздать массив:

int[] array = new int[] {1, 2, 3}; 

    // Add item simulation 
    int[] array = array.ToList().Add(4).ToArray(); 

    // Remove 2-nd item (that is 3) simulation 
    int[] array = array.ToList().RemoveAt(2).ToArray(); 

    // Clear simulation: just an array recreation 
    int[] array = new int[] {}; 

Если вы хотите структуру данных который выглядит как массив но позволяет добавлять/удалять/ясно, List<T> это первое, что вы можете проверить:

List<int> list = new List<int> {1, 2, 3}; 
    // Just add 
    list.Add(4); 
    // ... remove 
    list.RemoveAt(2); 
    // and clear 
    list.Clear(); 
+0

Неверно, вы можете изменить длину массива, вызвав Array.Resize (ref array, your_length); http://msdn.microsoft.com/en-us/library/bb348051(v=vs.110).aspx –

+0

это правда, Array.Resize создает новый массив и копирует все элементы старого массива в новый массив а затем устанавливает ссылку на новый массив. Он дал хороший подробный ответ на вопрос, который не показывает много проницательности. Я бы не сделал этого. – Tom

+0

Хотя ответ был глубоким, я думаю, что это проблема: она была слишком глубокой, по характеру вопроса. Который, как вы говорите, не продемонстрировал многого на пути исследований. Приведение массива в список, добавление чего-то к нему, а затем обратно в массив (при действительном подходе), похоже, напрямую не отвечает на заданные основные вопросы. И, как говорит Мо Патель, на самом деле существует метод Array.Resize. – Mashton