2017-09-14 6 views
0

は、私は、次を含むCSVファイルQuestions.csvを持っている:4個のアイテムを追加した後にリストの数が8になるのはなぜですか?

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

私のコードでは、私はファイルから読み取られ、値を使用して、質問オブジェクトを作成し、リストに質問オブジェクトを追加するには、次の方法があります。

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 

私はそれだけで4がなければならないとき、8つの項目がリスト内にあると言っているのはなぜそれが8に等しいallQuestions.count()を使用してリストのサイズを確認すると?

+0

デバッグ機能を使用してリストの項目をチェックしましたか?これはあなたの問題の解決策を見つけるのに役立つかもしれません – Jaxi

+0

allQuestions.count()はリスト内の要素の数と等しくなります。 Jaxiがあなたのリストでさらに質問をしているのを見つけ出すためには、デバッグする必要があります。 – Neal

+0

コードは期待通りに機能します。表示されていないコードで何か他のことが起こっているに違いありません。 – Neal

答えて

0

理想的ではない、これは私のために動作しますが:

私のコードでチェック
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件の結果を返し、それなしでコードがのために例外を投げたので、私は私の余分な分割をしなければならなかったものの、デリミタは実際には動作しません。

関連する問題