/// <summary> /// Добавление человека /// </summary> /// <param name="person">Человек</param> public void Add(PersonBase person) { var persons = _persons; _persons = new PersonBase[persons.Length + 1]; for (int i = 0; i < persons.Length; i++) { _persons[i] = persons[i]; } _persons[persons.Length] = person; }
/// <summary> /// Добавление нового человека в конец списка /// </summary> /// <param name="person">Человек</param> public void AddPerson(PersonBase person) { var buffer = _persons; _persons = new PersonBase[buffer.Length + 1]; for (int i = 0; i < buffer.Length; i++) { _persons[i] = buffer[i]; } _persons[buffer.Length] = person; }
/// <summary> /// Возвращает индекс человека, при наличии его в списке /// </summary> /// <param name="person">Экземпляр объекта класса Person</param> public int GetIndex(PersonBase person) { for (int i = 0; i < _persons.Length; i++) { if (_persons[i] == person) { return(i); } } throw new KeyNotFoundException("Такого человека в списке нет."); }
/// <summary> /// Возвращает индекс элемента при наличии его в списке /// </summary> /// <param name="person">Экземпляр класса Персона</param> /// <returns>Индекс экземпляра класса</returns> public int GetIndexOfPerson(PersonBase person) { for (int index = 0; index < _personArray.Length; index++) { if (_personArray[index] == person) { return(index); } } throw new Exception("The person you specified does not exist " + "in this list!"); }
/// <summary> /// Добавление персоны в список /// </summary> /// <param name="person">Экземпляр класса персона</param> public void AddPerson(PersonBase person) { var temporaryArray = _personArray; _personArray = new PersonBase[temporaryArray.Length + 1]; for (int i = 0; i < temporaryArray.Length; i++) { _personArray[i] = temporaryArray[i]; } _personArray[temporaryArray.Length] = person; }
/// <summary> /// Удаление персоны из списка по имени и фамилии /// </summary> /// <param name="person">Экземпляр класса Персона</param> public void DeletePersonByName(string name, string surname) { PersonBase[] truePersons = new PersonBase[0]; for (int i = 0; i < _personArray.Length; i++) { if ((_personArray[i].Name != name) && (_personArray[i].Surname != surname)) { Array.Resize(ref truePersons, truePersons.Length + 1); truePersons[truePersons.Length - 1] = _personArray[i]; } } _personArray = truePersons; }
/// <summary> /// Поиск человека в списке по переданному /// экземпляру объекта класса Person /// </summary> /// <param name="person">Экземпляр объекта класса Person</param> /// <returns> /// Индекс человека в списке /// </returns> public int GetPerson(PersonBase person) { for (int i = 0; i < _persons.Length; i++) { if (_persons[i] == person) { return(i); } } throw new KeyNotFoundException("There is no such person in " + "this list."); }
/// <summary> /// Заполнение базовых полей человека /// </summary> /// <param name="person">человек</param> public static void RandomPerson(PersonBase person) { var sex = _randNum.Next(0, 2); switch (sex) { case 0: { person.Sex = Sex.Male; person.Name = _maleNames[_randNum.Next(_maleNames.Length)]; break; } case 1: { person.Sex = Sex.Female; person.Name = _femaleNames[_randNum.Next(_femaleNames.Length)]; break; } } person.Surname = _allSurnames[_randNum.Next(_allSurnames.Length)]; }
/// <summary> /// Удаление человека из списка /// </summary> /// <param name="person">Эксземпляр класса Person</param> public void Delete(PersonBase person) { DeleteByIndex(GetIndex(person)); }
/// <summary> /// Удаление персоны из списка /// </summary> /// <param name="person">Экземпляр класса Персона</param> public void DeletePersonByIndex(PersonBase person) { DeleteByIndex(GetIndexOfPerson(person)); }