Реализация поиска по ФИО в файле - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте,подскажите пожалуйста,как реализовать поиск.Есть код: вводим данные(ф.и.о. и т.д.) в консоль,данные записываются в файл,или же считываем данные из файла, нужно реализовать поиск по 1 из типов данных, например, по имени.Подскажите как правильно это реализовать?Сделать считывающий потом и сравнить с данными введенными для поиска?

Решение задачи: «Реализация поиска по ФИО в файле»

textual
Листинг программы
using System;
using System.Xml.Serialization;
using System.Collections.Generic;
using System.IO;
 
class Program
{
    static void Main(string[] args)
    {
        Persons persons = new Persons();
        persons.Add(new Person() { Name = "qq", Surname = "rr" });
        persons.Add(new Person() { Name = "ww", Surname = "tt" });
        persons.Add(new Person() { Name = "qq", Surname = "yy" });
        persons.Save("Persons.xml");
        persons = Persons.Load("Persons.xml");
        persons.Add(new Person() { Name = "uu", Surname = "ii" });
        foreach (Person p in persons.Search("qq"))
            Console.WriteLine(p);
    }
}
 
public class Person
{
    public string Name;
    public string Surname;
 
    public override string ToString()
    {
        return Name + " " + Surname;
    }
}
 
public class Persons
{
    public List<Person> persons = new List<Person>();
 
    public void Add(Person person)
    {
        persons.Add(person);
    }
 
    public void Save(string path)
    {
        XmlSerializer xml = new XmlSerializer(typeof(Persons));
        StreamWriter sw = new StreamWriter(path);
        xml.Serialize(sw, this);
        sw.Close();
    }
 
    public static Persons Load(string path)
    {
        Persons persons;
        XmlSerializer xml = new XmlSerializer(typeof(Persons));
        StreamReader sr = new StreamReader(path);
        persons = (Persons)xml.Deserialize(sr);
        sr.Close();
        return persons;
    }
 
    public IEnumerable<Person> Search(string NameOrSurname)
    {
        foreach (Person p in persons)
            if (p.Name.Equals(NameOrSurname) || p.Surname.Equals(NameOrSurname))
                yield return p;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы