Реализация поиска по ФИО в файле - 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;
}
}