Я пытаюсь создать новые объекты и добавить их в список объектов, однако я сталкиваюсь с некоторыми проблемами, здесь - PullRequest
0 голосов
/ 22 марта 2020

То, что я пытался: я распечатал каждый элемент в массиве BookFields, чтобы убедиться, что идентификатор равен 1, заголовок "Head First Python, et c. И каждый элемент, кажется, имеет правильный Индекс из строки разделен. Я просмотрел код и не улавливаю ничего, что может вызвать эту ошибку, поскольку элементы отображаются так, как должны. Где я ошибся?

Я все еще продолжаю получать это сообщение об ошибке, несмотря на разбор идентификатора в int:

Error Message screenshot

скриншот файла book.txt

Печатные элементы в BookFields , но получаю ошибку Out of Bounds

Снимок экрана с кодом напечатанных элементов

Вот мой код:

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);
    }
}

1 Ответ

0 голосов
/ 22 марта 2020

К какому типу относится поле ISBN Книги? Я думаю, что в этом проблема.

Кроме того, вам не нужно реализовывать чтение CSV самостоятельно, есть несколько классных библиотек, которые могут сделать это за вас. Я бы порекомендовал CSVHelper, но есть и другие, посмотрите.

...