【问题标题】:Why is my list count 8 after adding only 4 items?为什么仅添加 4 个项目后我的列表计数为 8?
【发布时间】:2018-02-23 07:56:22
【问题描述】:

我有一个 csv 文件 Questions.csv,其中包含以下内容:

Question ID, A, B, C, 
1, TestA, TestB, TestC
2, TestA, TestB, TestC
3, TestA, TestB, TestC

在我的代码中,我有以下方法从文件中读取并使用这些值创建一个 Question 对象,然后将 Question 对象添加到列表中。

Public Sub getQuestionsAndAnswers()

Dim allQuestions As New List(Of Question)

Using ioReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("Resources/Questions.csv")

    ioReader.TextFieldType = FileIO.FieldType.Delimited
    ioReader.SetDelimiters(",")
    'ioReader.ReadFields()
    While Not ioReader.EndOfData

        Dim arrCurrentRow As String() = ioReader.ReadFields()
        Dim aQuestion As Question = New Question(arrCurrentRow(0), arrCurrentRow(1), arrCurrentRow(2))
        allQuestions.Add(aQuestion)

    End While

End Using

当我使用allQuestions.count() 检查列表的大小时,它等于 8。为什么列表中应该只有 4 个项目却说 8 个项目?

【问题讨论】:

  • 您是否尝试过使用调试功能并检查列表中的项目?这可能有助于找到解决问题的方法
  • allQuestions.count() 将等于列表中的元素数。正如 Jaxi 所说,要找出哪些问题构成了您需要调试的列表中的另外 4 个问题。
  • 您的代码按预期工作。在未显示的代码中肯定有其他事情发生......
  • 我同意@Neal。我运行了代码,得到了 4 个项目。

标签: vb.net list csv io


【解决方案1】:

虽然不理想,但这对我有用:

Public Sub getQuestionsAndAnswers()
    Dim allQuestions As New List(Of Question)

    Using ioReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("Resources/Questions.csv")

        ioReader.TextFieldType = FileIO.FieldType.Delimited
        ioReader.SetDelimiters(",")
        'ioReader.ReadFields()
        While Not ioReader.EndOfData

            Dim arrCurrentRow As String() = ioReader.ReadFields(0).Split(",")
            Dim aQuestion As Question = New Question(arrCurrentRow(0), arrCurrentRow(1), arrCurrentRow(2))
            allQuestions.Add(aQuestion)

        End While

    End Using
End Sub

检查了我的代码,它返回了 4 个结果,尽管我不得不进行额外的拆分,因为没有它,由于分隔符实际上不起作用,代码引发了异常......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多