Загрузка данных
class Contact
{
public string Name { get; set; }
public string Phone { get; set; }
public Contact(string name, string phone)
{
Name = name;
Phone = phone;
}
public override string ToString()
{
return $"{Name}:{Phone}";
}
public static Contact FromString(string line)
{
var parts = line.Split(':');
return new Contact(parts[0], parts[1]);
}
}
class Program
{
static List<Contact> contacts = new List<Contact>();
static string fileName = "phonebook.txt";
static void Main()
{
LoadContacts();
bool running = true;
while (running)
{
Console.WriteLine("\n--- Телефонный справочник ---");
Console.WriteLine("1. Добавить контакт");
Console.WriteLine("2. Найти по имени");
Console.WriteLine("3. Удалить контакт");
Console.WriteLine("4. Показать все контакты");
Console.WriteLine("5. Выход");
Console.Write("Выберите действие: ");
string choice = Console.ReadLine();
switch (choice)
{
case "1":
AddContact();
break;
case "2":
FindContact();
break;
case "3":
DeleteContact();
break;
case "4":
ShowAllContacts();
break;
case "5":
running = false;
break;
default:
Console.WriteLine("Неверный ввод.");
break;
}
}
}
static void LoadContacts()
{
if (File.Exists(fileName))
{
var lines = File.ReadAllLines(fileName);
foreach (var line in lines)
{
contacts.Add(Contact.FromString(line));
}
}
}
static void SaveContacts()
{
var lines = contacts.Select(c => c.ToString()).ToArray();
File.WriteAllLines(fileName, lines);
}
static void AddContact()
{
Console.Write("Имя: ");
string name = Console.ReadLine();
Console.Write("Телефон: ");
string phone = Console.ReadLine();
contacts.Add(new Contact(name, phone));
SaveContacts();
Console.WriteLine("Контакт добавлен.");
}
static void FindContact()
{
Console.Write("Введите имя для поиска: ");
string name = Console.ReadLine();
var found = contacts.Where(c => c.Name.Equals(name, StringComparison.OrdinalIgnoreCase)).ToList();
if (found.Count == 0)
Console.WriteLine("Контакт не найден.");
else
foreach (var c in found)
Console.WriteLine($"{c.Name} — {c.Phone}");
}
static void DeleteContact()
{
Console.Write("Введите имя контакта для удаления: ");
string name = Console.ReadLine();
int removed = contacts.RemoveAll(c => c.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
if (removed > 0)
{
SaveContacts();
Console.WriteLine($"Удалено {removed} контакт(ов).");
}
else
Console.WriteLine("Контакт не найден.");
}
static void ShowAllContacts()
{
if (contacts.Count == 0)
{
Console.WriteLine("Справочник пуст.");
return;
}
foreach (var c in contacts)
Console.WriteLine($"{c.Name} — {c.Phone}");
}
}