добавление элемента в массив объектов в объекте

162
12 января 2019, 03:20

Есть класс

class Person() {}

И есть объект который содержит массив классов Person

class Empl(){
private Person[] currentPerson
}

У него есть get и set, определен в конструкторе
А надо реализовать функцию addPerson, дабы в наш массив объектов добавлять еще одного

Answer 1

Если вы не можете использовать List<Person>, то вам нужно определиться с размером изначального массива, а затем считать сколько объектов уже добавлено в массив и при его заполнении изменять размер через Array.Resize. Этот метод создает новый массив с указанной размерностью и копирует в него данные из указанного массива, поэтому частое его использование может отрицательно сказаться на производительности.

В итоге у вас получится что-то вроде этого:

class Empl
{
    private const int ArraySize = 100;
    private Person[] _persons = new Person[ArraySize];
    private int _addedPersonsCount;
    public void AddPerson(Person p)
    {
        _persons[_addedPersonsCount] = p;
        _addedPersonsCount++;
        if (_addedPersonsCount == _persons.Length)
        {
            Array.Resize(ref _persons, _addedPersonsCount + ArraySize);
        }
    }
}
Answer 2

Массив - коллекция фиксированной длины, он плохо подходит для реализации подобных задач.

Если вы хотите часто добавлять элемент в конец коллекции - хорошо подойдет List.

class Empl
{
    private List<Person> currentPerson;
    public Emp()
    {
       currentPerson = new List<Person>();
    }
    public AddPerson(Person person)
    {
       currentPerson.Add(person);
    }
}
READ ALSO
Многопоточность с RestSharp

Многопоточность с RestSharp

Существует такая либа как RestSharp, для отправки REST запросов на сервер, мне нужно реализовать одновременную отправку на сервер несколько запросов...

172
использую selected upload для хранения картинок

использую selected upload для хранения картинок

После того как установил плагин картинки на сайте перестали отображатьсяХотя ссылки все рабочие

151
php - доступ к вложенным элементам массива

php - доступ к вложенным элементам массива

Есть многомерный массив

147
Laravel updateOrCreate - 1062 Duplicate entry

Laravel updateOrCreate - 1062 Duplicate entry

Есть такая таблица:

237