2013-02-25 2 views
0

Мне нужно прочитать из текстового файла, а затем поместить каждую строку в список, а затем прочитать из этого списка. Но я получаю исключение NullReferenceException «Ссылка на объект не установлена ​​в экземпляр объекта». В то же время исключение составляет около 7 строк. Я опробовал все, что мог придумать. Заранее спасибо.Как читать из текстового файла в список и читать из этого списка C#

   StreamReader sre = new StreamReader(FILE_PATH); 
       Books books = new Books(); 
       string line; 
       while ((line = sre.ReadToEnd()) != null) 
       { 
       //NullReferenceException is Right here 
       //I defined myLibraryBooks outside of this code; But it is in the same scope 
        myLibraryBooks.Add(new Books() { Author = books.Author.ToUpper(), Title = line.ToUpper(), ISBN = line, Publish_Date = line }); 
       } 
       Console.Write("Enter Author's Name:"); 
       string input_to_find = Console.ReadLine(); 
       var author = from Authors in myLibraryBooks 
          where Authors.Author == input_to_find 
          select Authors; 

       foreach (var book in author) 
       { 
        Console.WriteLine(String.Format("  Author   Title   ISBN   Publish Date")); 
        Console.WriteLine(String.Format("  {0}   {1}    {2}    {3}", books.Author, books.Title, books.ISBN, books.Publish_Date)); 
       } 
       sre.Dispose(); 
+2

Вы не определяете 'myLibraryBooks' в этом коде. Вероятно, это не так. – Bobson

+2

или 'books.Author' is null – paul

+1

Также' TextReader.ReadToEnd() 'не читает строку - он читает до конца файла. –

ответ

1

Вы объявляете books, но это не выглядит, как он становится установлен на что-нибудь (если вы не делаете некоторые странные вещи в конструкторе). Исходя из этого, я бы сказал, что следующая строка может вызвать это исключение:

 *Guessing Author is null... 
books.Author.ToUpper() 

Воспользуйтесь инструментами отладки .NET и шаг через код построчно, чтобы увидеть, где проблема.