我尝试过的事情:
我打印出BookFields数组中的每个元素,以确保id为1,标题为“ Head First Python,依此类推,并且每个元素似乎在行拆分中都具有正确的索引。我查看了代码,但我没有捕获任何可能导致此错误的内容,原因是元素显示的应为错误。我在哪里出错了?
尽管将id解析为一个整数,我仍然继续收到此错误消息。
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,但还有其他功能,请看看。
希望有所帮助。