private static void ParsePhoneBook(string filename)
        {
            using (var sr = new StreamReader(filename))
            {
                string line;
                char[] delim = { ' ' };
                do
                {
                    line = sr.ReadLine();
                    string[] parameters = line.Split('|');
                    string[] names = parameters[0].Split(delim, StringSplitOptions.RemoveEmptyEntries);
                    Person person = new Person();
                    for (int i = 0; i < names.Length; i++)
                    {
                        switch (i)
                        {
                            case 0:
                                person.FirstName = names[i];
                                break;
                            case 1:
                                person.MiddleName = names[i];
                                break;
                            case 2:
                                person.LastName = names[i];
                                break;
                            case 3:
                                person.NickName = names[i];
                                break;
                            default:
                                break;
                        }
                    }

                    PhoneRecord phoneRecord = new PhoneRecord(person, parameters[1].Trim(), parameters[2].Trim());
                    phoneRecordsByNames.Add(person, phoneRecord);
                }
                while (!sr.EndOfStream);
            }
        }
 public PhoneRecord(Person person, string town, string phoneNumber)
 {
     this.Person = person;
     this.Town = town;
     this.PhoneNumber = phoneNumber;
 }