Example #1
0
        /// <summary>
        /// Изменение формата данных о человеке
        /// </summary>
        /// <param name="person">Информация о человеке</param>
        /// <returns>Верный формат данных о человеке</returns>
        public static PersonBase ToCorrect(PersonBase person)
        {
            Regex regex = new Regex(@"[-]");

            string[] name = new string[2];

            name[0] = person.Name;
            name[1] = person.Surname;

            for (int i = 0; i < 2; i++)
            {
                name[i] = name[i].ToLower();

                //Проверка на двойное имя/фамилию
                if (regex.IsMatch(name[i]))
                {
                    string[] doubleName = name[i].Split('-');
                    name[i] = ToRightBound(doubleName[0])
                              + "-" + ToRightBound(doubleName[1]);
                }
                else
                {
                    name[i] = ToRightBound(name[i]);
                }
            }

            person.Name    = name[0];
            person.Surname = name[1];

            return(person);
        }
Example #2
0
        /// <summary>
        /// Удаляет элемент из списка
        /// </summary>
        /// <param name="person">Данные человека</param>
        public bool Remove(PersonBase person)
        {
            CheckZeroLength();

            int i = IndexOf(person);

            RemoveAt(i);
            return(true);
        }
Example #3
0
        /// <summary>
        /// Добавляет данные о человеке в лист
        /// </summary>
        /// <param name="person">Данные человека</param>
        public void Add(PersonBase person)
        {
            PersonBase[] newPerson = Person;
            Person = new PersonBase[Person.Length + 1];

            for (int i = 0; i < newPerson.Length; i++)
            {
                Person[i] = newPerson[i];
            }

            Person[Person.Length - 1] = person;
        }
Example #4
0
        /// <summary>
        /// Возвращает индекс человека в списке
        /// </summary>
        /// <param name="person">Данные человека</param>
        /// <returns>Индекс человека в списке</returns>
        public int IndexOf(PersonBase person)
        {
            CheckZeroLength();

            for (int i = 0; i < Person.Length; i++)
            {
                if (person.Name == Person[i].Name &&
                    person.Surname == Person[i].Surname &&
                    person.Age == Person[i].Age)
                {
                    return(i);
                }
            }
            throw new ArgumentException(string.Format("index not found",
                                                      nameof(person)));
        }
Example #5
0
        /// <summary>
        /// Удаление элемента по указанному индексу index
        /// </summary>
        /// <param name="index">Индекс элемента в списке</param>
        public void RemoveAt(int index)
        {
            CheckZeroLength();
            PersonBase[] newPerson = Person;
            Person = new PersonBase[Person.Length - 1];
            int changeIndex = 0;

            for (int j = 0; j < newPerson.Length; j++)
            {
                if (j == index)
                {
                    continue;
                }

                Person[changeIndex] = newPerson[j];
                changeIndex++;
            }
        }
Example #6
0
        /// <summary>
        /// Заполенение основных свойств человека
        /// </summary>
        /// <param name="person">Человек</param>
        /// <param name="gender">Пол</param>
        /// <param name="age">Возраст</param>
        private static void GetBaseInfo(PersonBase person, Gender gender, int age)
        {
            switch (gender)
            {
            case Gender.Male:
                person.Name    = TextReader("MaleFirstNames.txt");
                person.Surname = TextReader("MaleLastNames.txt");
                person.Age     = age;
                person.Gender  = gender;
                break;

            case Gender.Female:
                person.Name    = TextReader("FemaleFirstNames.txt");
                person.Surname = TextReader("FemaleLastNames.txt");
                person.Age     = age;
                person.Gender  = gender;
                break;

            default:
                throw new ArgumentException(string.Format("wrong gender", nameof(gender)));
            }
        }
Example #7
0
 /// <summary>
 /// Удаляет все элементы в списке
 /// </summary>
 public void RemoveAll()
 {
     Person = new PersonBase[0];
 }