C# 填充字符串列表,但

C# 填充字符串列表,但,c#,C#,我有一个返回字符串列表的方法。它遍历一些对象以填充字符串列表。有点不对劲,因为它只重复存储第一个对象。这是一份作业。非常感谢您的任何建议 public List<List<string>> BookDetails() { List<List<string>> listOfBooks = new List<List<string>>(); List<string> bookD

我有一个返回字符串列表的方法。它遍历一些对象以填充字符串列表。有点不对劲,因为它只重复存储第一个对象。这是一份作业。非常感谢您的任何建议

public List<List<string>> BookDetails()
    {
        List<List<string>> listOfBooks = new List<List<string>>();
        List<string> bookDetails = new List<string>();
        List<Book> b;

        foreach (Library lib in libraryList)
        {
            b = lib.Booklist;

            foreach (Book book in b)
            {
                bookDetails.Add(book.BookTitle);
                bookDetails.Add(book.BookAuthor);
                bookDetails.Add(lib.LibraryName);
                bookDetails.Add(book.BookGenre);

                listOfBooks.Add(bookDetails);
            }

        }

       return listOfBooks;

    }
public List BookDetails()
{
listOfBooks=新列表();
List bookDetails=新列表();
名单b;
foreach(图书馆列表中的图书馆库库)
{
b=图书馆图书目录;
foreach(b中的Book)
{
bookDetails.Add(book.BookTitle);
bookDetails.Add(book.BookAuthor);
bookDetails.Add(lib.LibraryName);
bookDetails.Add(book.BookGenre);
图书目录。添加(图书详细信息);
}
}
返回图书目录;
}

每次向图书列表中添加图书时,都需要一个新的图书详细信息对象

将book details对象的创建移动到最内部的循环中,如下所示:

        foreach (Book book in b)
        {
            List<string> bookDetails = new List<string>(); //<-- move this line
            bookDetails.Add(book.BookTitle);
            bookDetails.Add(book.BookAuthor);
            bookDetails.Add(lib.LibraryName);
            bookDetails.Add(book.BookGenre);
            listOfBooks.Add(bookDetails);
        }
foreach(在b中预订)
{

List bookDetails=new List();//谢谢-我知道它必须很简单,但我已经盯着它看了这么久。欢迎你,弗洛,欢迎来到StackOverflow。顺便说一句,向上投票和/或单击大勾号是非常感谢你的。