Как изменить поля членов коллекции - C#
Формулировка задачи:
Здравствуйте! Допустим есть класс Book
И есть коллекция состоящая из экземпляров класса Book
Подскажите, как написать метод, который уменьшает поле Number у выбранной книги
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WpfTestListView { class Book { public string Author { get; set; } public string Title { get; set; } public int Number { get; set; } public Book(string author, string title, int number) { Author = author; Title = title; Number = number; } } }
List<Book> listBook = new List<Book>();
public void RemoveBook(Book book) { }
Решение задачи: «Как изменить поля членов коллекции»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //формируем библиотеку Library lib = new Library(); lib.AddNew("Пелевин В.О.", "Чапаев и пустота", 10); lib.AddNew("Пушкин А.С.", "Евгений Онегин", 15); lib.AddNew("Булгаков М.Е.", "Мастер и Маргарита", 20); lib.AddNew("Достоевский Ф.М.", "Бесы", 2); //выдаем книги lib.RemoveBook("Пелевин В.О.", "Чапаев и пустота"); lib.RemoveBook("Пелевин В.О.", "Чапаев и пустота"); lib.RemoveBook("Пелевин В.О.", "Чапаев и пустота"); lib.RemoveBook("Пелевин В.О.", "Чапаев и пустота"); lib.RemoveBook("Булгаков М.Е.", "Мастер и Маргарита"); lib.RemoveBook("Булгаков М.Е.", "Мастер и Маргарита"); lib.RemoveBook("Достоевский Ф.М.", "Бесы"); lib.RemoveBook("Достоевский Ф.М.", "Бесы"); lib.RemoveBook("Достоевский Ф.М.", "Бесы"); //возвращаем книги lib.ReturnBook("Пелевин В.О.", "Чапаев и пустота"); lib.ReturnBook("Булгаков М.Е.", "Мастер и Маргарита"); //текущее состояние списка на экран: List<LibraryBook> list = lib.GetLibrary(); foreach (LibraryBook lb in list) { Console.WriteLine(lb); } Console.ReadKey(); } } class Book { public string Author { get; set; } public string Title { get; set; } public Book(string author, string title) { Author = author; Title = title; } public static bool operator == (Book book1, Book book2) { if (book1.Author==book2.Author && book1.Title==book2.Title) return true; else return false; } public static bool operator != (Book book1, Book book2) { if (book1.Author==book2.Author && book1.Title==book2.Title) return false; else return true; } } class LibraryBook { public Book book { set; get; } public int Number { set; get;} public LibraryBook(string author, string title, int number) { book = new Book(author, title); Number = number; } public static LibraryBook operator ++(LibraryBook book) { book.Number++; return book; } public static LibraryBook operator --(LibraryBook book) { book.Number--; return book; } public override string ToString() { return string.Format("{0}\t{1}\t{2}", book.Author, book.Title, Number); } } class Library { List<LibraryBook> library; public Library() { library = new List<LibraryBook>(); } public List<LibraryBook> GetLibrary() { return library; } int FindBookIndex(Book book) { for (int i = 0; i < library.Count; i++) { if (book == library[i].book) return i; } return -1; } public void AddNew(string author, string title, int number) { library.Add(new LibraryBook(author, title, number)); } public void ReturnBook(string author, string title) { int index = FindBookIndex(new Book(author, title)); if (index >= 0) { library[index]++; } } public void RemoveBook(string author, string title) { int index = FindBookIndex(new Book(author, title)); if (index >= 0 && library[index].Number>0) { library[index]--; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д