填充字符串列表但是

时间:2011-03-26 06:18:10

标签: c#

我有一个返回字符串列表列表的方法。它遍历一些对象以填充字符串列表。有一些错误,因为它只是重复存储第一个对象。这是一项任务。任何建议都非常感谢

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;

    }

1 个答案:

答案 0 :(得分:2)

每次将书籍添加到listOfBooks时,您都需要一本新的书籍详细信息对象。

将书籍详细信息对象的创建移动到最里面的循环中,如下所示:

        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);
        }

顺便说一句,我不得不想知道为什么要将单个属性作为字符串添加到listOfBooks而不是像List<Pair<String,Book>>那样,甚至可能List<Pair<Library,Book>>