我正在尝试制作书架应用程序,但我在使用列表方面遇到了麻烦。我希望的是在用户指定他们想要添加多少本书之后,for循环应该希望以指定的数量重复该方法。
首次运行该方法后,添加的标题将添加到列表中。
class Shelf
{
public void Program()
{
Book book = new Book();
int bookAmount;
Console.WriteLine("How many books are you adding.");
bookAmount = int.Parse(Console.ReadLine());
for(int x = 0; x <= bookAmount; x++)
{
AddBook(book);
}
}
public void AddBook(Book book)
{
List<string> bookTitles = new List<string>();
string bookTitle;
Console.WriteLine("Enter title.");
bookTitle = Console.ReadLine();
bookTitles.Add(bookTitle);
bookTitles = book.Title; // 'Cannot implicitly convert type 'string' to 'System.Collections.Generic.List<string>'
}
}
class Book
{
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
}
任何批评都是受欢迎的。先感谢您。
答案 0 :(得分:1)
你想要做的事情是这样的:
public class Book
{
public string ISBN { get; set; }
public string Title {get; set; }
public string Author {get; set; }
}
这本书将代表我们的数据模型。现在你会这样做:
List<Book> library = new List<Book>();
int quantity;
while(quantity < 7)
{
library.Add("12345", "C#", "Someone");
}
代码正在做什么,我们创建了一个List<Book>
来保存我们的数据模型。然后你会有一个循环,根据用户输入的值进行迭代。然后你只需调用库(List)并在它询问用户输入后添加。
显然,我并没有尝试获取用户输入或验证,而是使用了如何使用List
的示例。
答案 1 :(得分:0)
以下内容可能有所帮助:
class Shelf
{
List<Book> books = new ArrayList<Book>();
public void Program()
{
int numberOfBooks;
Console.WriteLine("How many books are you adding.");
numberOfBooks = int.Parse(Console.ReadLine());
for(int x = 0; x <= numberOfBooks; x++)
{
AddBook();
}
}
public void AddBook()
{
string bookTitle;
Console.WriteLine("Enter title.");
bookTitle = Console.ReadLine();
books.Add(new Book(bookTitle));
}
}
class Book
{
private string title;
public Book(string _title)
{
title = _title;
}
public string Title
{
get { return title; }
set { title = value; }
}
}
请记住:
答案 2 :(得分:-2)
我认为您必须更改代码,如下所示:
1-你必须在addbook中创建书籍但是你在主程序功能中创建了课程
2-你无法将字符串转换为列表
3-你的colcetion必须包含一本书
class Shelf
{
public void Program()
{
int bookAmount;
Console.WriteLine("How many books are you adding.");
bookAmount = int.Parse(Console.ReadLine());
//book is deleted
for(int x = 0; x <= bookAmount; x++)
{
AddBook();//parameter was deleted and aff in function
}
}
List<Book> bookTitles = new List<Book>(); //collection create generally in class like fields
public void AddBook()
{
Book book = new Book();
string bookTitle;
Console.WriteLine("Enter title.");
Book.Title = Console.ReadLine();
bookTitles.Add(book); //add book to colection
}
}
class Book
{
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
}