2011-03-26 40 views
2

我有一种方法,返回字符串列表的列表。它遍历一些对象来填充字符串列表。有一些错误,因为它只是重复存储第一个对象。这是一个任务。任何建议,不胜感激填充字符串列表的列表,但

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; 

    } 

回答

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>>

+0

谢谢 - 我知道它一定很简单,但我一直盯着它看这么久。 – flo 2011-03-26 06:30:06

+0

不客气,欢迎来到StackOverflow。顺便说一句,upvote和/或点击大勾是一个非常赞赏的“谢谢你”在这里。 – 2011-03-26 06:32:27