[我正在尝试创建新对象,并将其添加到对象列表中,但是我在这里遇到了一些问题

问题描述 投票:-1回答:1

[我尝试过的事情:我打印出BookFields数组中的每个元素,以确保id为1,标题为“ Head First Python,依此类推,并且每个元素似乎在行拆分中都有正确的索引。我检查了代码,由于元素显示应有的样子,我没有发现任何可能导致此错误的内容。我在哪里出错了?

尽管将id解析为int,我仍然收到此错误消息:

“错误消息屏幕截图”

book.txt file screenshot

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);
    }
}
c# object text-files
1个回答
0
投票

书籍的ISBN字段是什么类型?我认为这就是问题所在。

[此外,您不必自己实现CSV读取功能,那里有一些很酷的库可以为您完成此操作。我建议使用CSVHelper,但还有其他功能,请看看。

© www.soinside.com 2019 - 2024. All rights reserved.