2017-04-17 52 views
1

我想從文本文件填充列表。從文本文件填充列表<T>

public class Book 
{ 
public string Title { get; set; } 
public string Year { get; set; } 
} 

該文本文件的標題和年份在一行接一行。

List<Book> BookList = new List<Book>(); 

    //assume the path is correct 
string[] lines = File.ReadAllLines(path); 

如何填充該數組中的列表,而不會覆蓋Book對象,通過這兩個領域都填充給定記錄之前,每一次。

  foreach (string line in lines) 
      { 
       int n; 

       Book record = new Book(); 

        if (!int.TryParse(line, out n)) 
        { 
         record.Title = line; 
        } 
        else 
        { 
         record.PublicationYear = line; 
         BookList.Add(record); 
        } 
      } 
+0

標題:年份:1955 標題年份:1947年 的標題缺失。 – user1327418

+0

文本文件的格式是什麼? – Meccano

+0

該文本文件在一行上有一個標題,下一個在其出版年。所以每個List記錄有兩行。 – user1327418

回答

2

既然你聲明和實例內環路Book record,你創建的,而不是每隔各線路一個全新的書。嘗試移動它的外循環:

Book record = new Book(); 
foreach (string line in lines) 
{ 
     int n; 
     if (!int.TryParse(line, out n)) 
     { 
      record.Title = line; 
     } 
     else 
     { 
      record.PublicationYear = line; 
      BookList.Add(record); 
      record = new Book(); 
     } 
} 
+0

這工作!謝謝! – user1327418