从文本文件填充List <t>

时间:2017-04-17 01:30:38

标签: c#

我试图从文本文件填充列表。

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对象的情况下从数组中填充List而不覆盖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);
                    }
          }

1 个答案:

答案 0 :(得分: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();
       }
 }