从CSV文本文件创建数组并选择阵列的某些部分。在VB.NET中

时间:2011-03-20 02:26:26

标签: vb.net arrays csv

我已经在互联网上搜索了我的问题,但我无法正确查找/说出我的搜索...

我的问题是我有一个.txt格式的逗号分隔值文件...简单地说,它用逗号和文本限定符分隔的一堆数据用“”分隔

例如:

"So and so","1234","Blah Blah", "Foo","Bar","","","",""
"foofoo","barbar","etc.."

如果有回车符,则表示新行,每个逗号分隔新列。

我的下一步是进入VB.net并使用这些值创建一个数组,并使用逗号作为分隔符,并以某种方式将数组放入一个表格,文本文件的格式与数组匹配(我希望我解释我自己正确:/)

在创建了该数组之后,我只需要选择该数组的某些部分并将该值存储到变量中以供以后使用....

Andthats我的麻烦来了......我似乎无法得到关于如何制作阵列并从中选择某些信息的正确逻辑..

如果有的话

1 个答案:

答案 0 :(得分:1)

您可能会提供更详细的问题描述,但我知道您正在寻找类似的内容:

Sub Main()
    Dim fileOne As String = "a1,b1,c1,d1,e1,f1,g1" + Environment.NewLine + _
                           "a2,b2,c2,d2,e2,f2,g2"

    Dim table As New List(Of List(Of String))

    ' Process the file
    For Each line As String In fileOne.Split(Environment.NewLine)
        Dim row As New List(Of String)
        For Each value In line.Split(",")
            row.Add(value)
        Next

        table.Add(row)
    Next

    ' Search the "table" using LINQ (for example)
    Dim v = From c In table _
            Where c(2) = "c1"

    Console.WriteLine("Rows containing 'c1' in the 3rd column:")
    For Each x As List(Of String) In v
        Console.WriteLine(x(0)) ' printing the 1st column only
    Next

    ' *** EDIT: added this after clarification
    ' Fetch value in row 2, column 3 (remember that lists are zero-indexed)
    Console.WriteLine("Value of (2, 3): " + table(1)(2))
End Sub