尝试制作书架控制台应用程序,但在列表方面遇到一些麻烦。 (C#初学者)

时间:2014-08-15 19:50:50

标签: c# list console-application

我正在尝试制作书架应用程序,但我在使用列表方面遇到了麻烦。我希望的是在用户指定他们想要添加多少本书之后,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; }
    }

}

任何批评都是受欢迎的。先感谢您。

3 个答案:

答案 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; }
    }

}

请记住:

  1. 为变量指定有意义的名称
  2. 在需要时使用方法的输入参数
  3. 更多关注全局变量和局部变量以及何时应该使用

答案 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; }
    }

}