Поиск в коллекции - C#
Формулировка задачи:
Как реализовать поиск в коллекции книги , по условию в абстрактном классе Abstr объявить метод Find. Метод Find определяет, находится ли среди объектов искомая книга. Если такая книга имеется, то выводится ее название и порядковый номер объекта. Иначе выводится сообщение, что такой книги нет.
Отдельный вопрос нужно ли искать по конкретному полю(name, titles,quant) или можно просто искать параметр и выводить всю строку? Ну и нужно ли сортировать перед поиском?
Зачем мне интерфейс и абстрактный класс лучше не спрашивайте, так нужно просто по условию Лабы -по условию нужно взять задачу из другой лабы и прикрутить интерфейс и абстрактный класс и чтоб их обоих унаследовал класс Book, ну и + сделать поиск.
using System;
using System.Collections.Generic;
namespace Application1
{
interface Inter
{
void Print();
}
/*public class Abstr
{
}*/
public class Book : /*Abstr,*/ Inter
{
public string name{ get; set; }
public string title{ get; set; }
public string quant{ get; set; }
public Book(string name, string title, string quant)
{
this.name = name;
this.title = title;
this.quant = quant;
}
public static Book New()
{
Console.Write(" Автор: ");
string name = Console.ReadLine();
Console.Write(" Название книги: ");
string title = Console.ReadLine();
Console.Write(" Количество: ");
string quant = Console.ReadLine();
return new Book(name, title, quant);
}
public void Print ()
{
Console.WriteLine (name+" "+title+" "+quant);
}
}
public class MainClass
{
public static void Main()
{
List <Book> books= new List<Book>();
var stop = false;
do
{
Console.WriteLine();
Console.WriteLine("Меню :");
Console.WriteLine("1. Добавить книгу");
Console.WriteLine("2. Поиск книги");
Console.WriteLine("3. Вывод всего списка");
Console.WriteLine("0. Выход");
String str=Console.ReadLine();
switch(str)
{
case "1":
books.Add(Book.New());
break;
case "2":
//место под поиск
break;
case "3":
foreach (Book book in books)
{
book.Print ();
}
break;
case "0":
stop = true;
break;
default:
Console.WriteLine("Введите значение меню из списка");
break;
}
}
while (!stop);
}
}
}Решение задачи: «Поиск в коллекции»
textual
Листинг программы
if(b.name==Name) //Значит нашли нужную
{
Console.WriteLine($"{b.name} {b.title} {b.quant}");
}