[我尝试过的事情:我打印出BookFields
数组中的每个元素,以确保id为1,标题为“ Head First Python,依此类推,并且每个元素似乎在行拆分中都有正确的索引。我检查了代码,由于元素显示应有的样子,我没有发现任何可能导致此错误的内容。我在哪里出错了?
尽管将id解析为int,我仍然收到此错误消息:
Printed Elements in BookFields, but getting an Out of Bounds Error
Code screenshot of elements printed
这是我的代码:
static void Main(string[] args)
{
var BookCsvData = System.IO.File.ReadAllLines(@"/Users/jasonampah/Desktop/Book.txt").ToList();
var AllBooks = new List<Book>() { };
foreach (string line in BookCsvData)
{
string[] Bookfields = line.Split(',');
Book Newbook = new Book();
Newbook.id = int.Parse(Bookfields[0]);
Newbook.Title = Bookfields[1];
Newbook.Synopsis = Bookfields[2];
Newbook.Author = Bookfields[3];
Newbook.YearPublished = Bookfields[4];
Newbook.ISBN = long.Parse(Bookfields[5]);
AllBooks.Add(Newbook);
}
}
书籍的ISBN字段是什么类型?我认为这就是问题所在。
[此外,您不必自己实现CSV读取功能,那里有一些很酷的库可以为您完成此操作。我建议使用CSVHelper,但还有其他功能,请看看。