我试图从文本文件填充列表。
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);
}
}
答案 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();
}
}