Buenas tardes,
Estoy tratando de refrescar un poco mis conocimientos sobre C# y tengo el desafío de crear una clase llamada Biblioteca, con una propiedad de Listar libros. Tengo otra clase llamada Libros que obtiene el título, autor y número de páginas. El objetivo aquí es agregar libros de la otra clase a la biblioteca.
Agregué mis libros de mi clase de libros a la Lista de la biblioteca. Parece que no puedo imprimirlo en la consola debido a un error que agregaré al final. Sé cómo imprimir los elementos de la lista normalmente, pero no para esto.
public class Book { //This Class doesn't require fields //properties public string Title { get; set; } public string Author { get; set; } public int NumberOfPages { get; set; } //Constructors public Book() { } public Book(string title, string author, int numberOfPages) { Title = title; Author = author; NumberOfPages = numberOfPages; } public override string ToString() { return $"Title: {Title}\n" + $"Author: {Author}\n" + $"Number of pages: {NumberOfPages}"; } } public class Library { //This class has no fields //Properties public List<Book> Books { get; set; } public string LibraryName { get; set; } public string StreetAddress { get; set; } public string City { get; set; } public string State { get; set; } public string Zip { get; set; } //Constructors public Library() { } public Library(List<Book> books, string libraryName, string streetAddress, string city, string state, string zip) { Books = books; LibraryName = libraryName; StreetAddress = streetAddress; City = city; State = state; Zip = zip; } public override string ToString() { return $"{Books}\n\n" + $"Library Name: {LibraryName}\n" + $"Address: {StreetAddress}, {City}, {State} {Zip}"; } } void Library() { List<Book> books = new List<Book>(); books.Add(lordLoss); books.Add(harryPotter); Library kansasCity = new Library(books, "Kansas City Library", "3242 E 24th St", "Kansas City", "MO", "64115"); Console.WriteLine(books); } System.Collections.Generic.List`1[ClassLibrary.Book]Descubrí la respuesta. Simplemente puede colocar el foreach dentro del área ToString().
public override string ToString() { string booksInLibrary = ""; foreach (Book b in Books) { booksInLibrary += b + "\n"; } return $"Books: \n {booksInLibrary}" + $"Library Name: {LibraryName}\n" + $"Address: {StreetAddress}, {City}, {State} {Zip}"; }Tendrá que iterar sobre la lista e imprimir cada libro por separado.
Con bucle for :
for (int i = 0; i < books.Count; i++) { Book book = books[I]; Console.WriteLine(book); } Con bucle foreach :
foreach (Book book in books) { Console.WriteLine(book); } Con List.ForEach :
books.ForEach(book => Console.WriteLine(book));