Домашняя библиотека. Удаление и добавление книг - C#
Формулировка задачи:
Есть уже такой вариант домашней библиотеки, но удаление работает неправильно (удаляет первую книгу в списке вместо указаной). Буду благодарен, кто сможет помочь решить эту проблему, а также сможет добавить возможность добавления книг после удаления (уже после запуска в консоли) и добавит исключения в случаи ошибки)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lab5
{
public class HomeLibrary
{
public int Number { get; set; }
public string Author { get; set; }
public int Year { get; set; }
public string Category { get; set; }
List<HomeLibrary> homeLibraryList = new List<HomeLibrary>();
public void Add(HomeLibrary homeLibrary)
{
homeLibraryList.Add(homeLibrary);
}
public void Remove(HomeLibrary homeLibrary)
{
homeLibraryList.Remove(homeLibrary);
}
public override bool Equals(object obj)
{
if (obj == null) return false;
HomeLibrary objHomeLibrary = obj as HomeLibrary;
if (objHomeLibrary == null)
return false;
return true;
}
public override string ToString()
{
return Number + " " + Author + " " + Year + " " + Category;
}
public void ShowScreen()
{
foreach (var VARIABLE in homeLibraryList)
{
Console.WriteLine(VARIABLE.ToString());
}
Console.WriteLine("\n");
}
public void Search(string str, int number)
{
foreach (var VARIABLE in homeLibraryList)
{
if (number == 1 && VARIABLE.Author == str)
{
Console.WriteLine(VARIABLE.ToString());
}
else if (number == 2 && VARIABLE.Year == Convert.ToInt32(str))
{
Console.WriteLine(VARIABLE.ToString());
}
else if (number == 3 && VARIABLE.Category == str)
{
Console.WriteLine(VARIABLE.ToString());
}
else if (number == 4 && VARIABLE.Number == Convert.ToInt32(str))
{
Console.WriteLine(VARIABLE.ToString());
}
}
}
static void Main(string[] args)
{
HomeLibrary homeLibrary = new HomeLibrary();
homeLibrary.Add(new HomeLibrary { Number = 1, Author = "Ессенин", Year = 1900, Category = "Стихи" });
homeLibrary.Add(new HomeLibrary { Number = 2, Author = "Пушкин", Year = 1910, Category = "Рассказы" });
homeLibrary.Add(new HomeLibrary { Number = 3, Author = "Лермонтов", Year = 1920, Category = "Басни" });
homeLibrary.Add(new HomeLibrary { Number = 4, Author = "Достоевский", Year = 1910, Category = "Стихи" });
homeLibrary.ShowScreen();
homeLibrary.Remove(new HomeLibrary { Number = 3, Author = "Лермонтов", Year = 1920, Category = "Басни" });
homeLibrary.ShowScreen();
Console.WriteLine("По какому критерию будем производить поиск? (По автору-1, год издания-2, по категории-3," +
"по номеру -4)");
int number = int.Parse(Console.ReadLine());
switch (number)
{
case 1: Console.WriteLine("Введите *писателя");
homeLibrary.Search(Console.ReadLine(), number);
break;
case 2: Console.WriteLine("Введите *год издания");
homeLibrary.Search(Console.ReadLine(), number);
break;
case 3: Console.WriteLine("Введите *категорию");
homeLibrary.Search(Console.ReadLine(), number);
break;
case 4: Console.WriteLine("Введите *номер книги");
homeLibrary.Search(Console.ReadLine(), number);
break;
default: Console.WriteLine("Не правильный критерий");
break;
}
Console.ReadLine();
}
}
}Решение задачи: «Домашняя библиотека. Удаление и добавление книг»
textual
Листинг программы
return ToString() == obj.ToString();