using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Book { public string AuthorName, Genre, Year, AmountPages, Name, Content; public Book(string a) { Name = a; } public static HomeLibr operator +(Book a, Book b) { HomeLibr s = new HomeLibr(); s = s + a; s = s + b; return s; } } class HomeLibr { public List Books = new List(); public HomeLibr() { } public static HomeLibr operator +(HomeLibr a, Book b) { a.Books.Add(b); return a; } public static HomeLibr operator -(HomeLibr a, Book b) { foreach (Book z in a.Books) { if (z == b) { a.Books.Remove(z); return a; } } return a; } public HomeLibr Search(string s2, ref bool check) { HomeLibr result = new HomeLibr(); Regex r = new Regex(@"\w*"+s2+@"\w*"); foreach (Book k in Books) { if (r.IsMatch(k.AuthorName) || r.IsMatch(k.Name) || r.IsMatch(k.Genre) || r.IsMatch(k.Year)) result.Books.Add(k); } return result; } } class Program { static void Main(string[] args) { try { Book a = new Book("1"); a.AuthorName = "2"; a.Genre = "3"; a.Year = "4"; a.Name = "5"; Book b = new Book("2"); b.AuthorName = "3"; b.Genre = "4"; b.Year = "555"; b.Name = "6"; Book c = new Book("3"); c.AuthorName = "4"; c.Genre = "5"; c.Year = "6"; c.Name = "7"; HomeLibr Libr = new HomeLibr(); Libr = Libr + a; Libr = Libr + b; Libr = Libr + c; Console.Write("Книги библиотеки №1 - "); foreach (Book q in Libr.Books) { Console.Write(q.Name + " "); } Console.WriteLine("\n"); Libr = Libr - b; Console.Write("Книги библиотеки №1 после удаления книги {0} - ", b.Name); foreach (Book q in Libr.Books) { Console.Write(q.Name + " "); } Console.WriteLine("\n"); HomeLibr Libr2 = a + b; Console.Write("Книги библиотеки №2, созданной складываем книг {0} и {1} - ", a.Name, b.Name); foreach (Book q in Libr2.Books) { Console.Write(q.Name + " "); } Console.WriteLine("\n"); bool check = false; HomeLibr finding = Libr.Search("2", ref check); Console.Write("Результат запроса : книги - " ); foreach(Book x in finding.Books) { Console.Write(x.Name +" "); } } catch (Exception e) { Console.WriteLine(e.Message); } } } }