Arrays 需要在Visual basic中将字符串拆分为多个数组的帮助吗

Arrays 需要在Visual basic中将字符串拆分为多个数组的帮助吗,arrays,vb.net,visual-studio-2010,Arrays,Vb.net,Visual Studio 2010,我得到了这个.txt文件 Left Behind,Lahaye,F,7,11.25 A Tale of Two Cities,Dickens,F,100,8.24 Hang a Thousand Trees with Ribbons,Rinaldi,F,30,16.79 该文件是: 书名、作者、小说或非小说、股票、价格 我需要将它们分割成多个阵列,至少我觉得我是这样做的,我已经做到了 Private Sub frmInventory_Load(ByVal sender As Syste

我得到了这个.txt文件

Left Behind,Lahaye,F,7,11.25
A Tale of Two Cities,Dickens,F,100,8.24
Hang a Thousand Trees with Ribbons,Rinaldi,F,30,16.79
该文件是: 书名、作者、小说或非小说、股票、价格

我需要将它们分割成多个阵列,至少我觉得我是这样做的,我已经做到了

    Private Sub frmInventory_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'Populate array
    Dim temp() As String = IO.File.ReadAllLines("Books.txt")
    temp = Split(",")
    lstBooks.DataSource = temp.ToList
End Sub
这并没有起作用。。。很明显

我只是不知道如何将它放入多个数组中,比如书,或者可能是一个二维数组

谢谢你的帮助

我看过很多这样的网站,但他们提供的唯一帮助是把它分成两部分。

如果格式总是如此严格,可以使用string.Split手动执行,否则我建议使用现有的库,如this或VB.NET板载类

要回答实际问题,可以使用
File.ReadLines
IEnumerable(Of String())

如果需要数组:
lines.ToArray()
,则会将所有行加载到内存中(如),而
File.ReadLines
会将行从文件中流出来,并且仅当您请求时(例如,通过
Take(10)

编辑:如果您想要最可重用的方法,请使用具有这些属性的自定义类,并从字符串()初始化它:


例如,您可以在每个的
中使用它,或将其用作数据源。请注意,它容易出错,标题可能也包含逗号,或者格式并不总是严格。

如果不知道要对数据执行什么操作,很难提供帮助。 但我想你最好的办法是创建一个book类,其中包含书名、作者、价格等属性

创建一个(书籍)列表,逐行读取txt文件,用逗号分隔每一行,并用每个结果数组创建一个书籍实例,然后将其添加到列表中,如下面这个匆忙编写的示例:

Public Class book
Property title As String
Property author As String
Property price As Double

Public Sub New(ByVal title As String, ByVal author As String, ByVal price As Double)
    _title = title
    _author = author
    _price = price
End Sub
End Class

Public Class Form1
Public booklist As List(Of book)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)     Handles Button1.Click
    Dim bookfile As String() = IO.File.ReadAllLines("c:\file.txt")
    For Each line As String In bookfile
        Dim bookinfo As String() = line.Split(",")
        Dim abook As New book(bookinfo(0), bookinfo(1), bookinfo(2))
        booklist.Add(abook)
    Next
End Sub
End Class

如果这是您想做的事情,我将根据需要改进上述代码

我感谢您的回答!但基本上我所要做的就是使用我得到的数组使数据可排序,所以我可以说如果作者(1)是Lahaye,那么作者(1)=(“Lahi”)或类似的东西,这就是为什么我试图将其拆分为多个数组OK,我发现很难理解你想要实现什么。也许你可以编辑你的问题,给出一个大局图,因为你似乎仍然只想对数据进行排序,而一个列表(对象)似乎是最简单的选择。
Public Class Book
    Public Property Title As String
    Public Property Author As String
    ' and so on '
End Class

 Dim books = From line In System.IO.File.ReadLines("Books.txt")
             Let parts = line.Split(","c)
             Select New Book() With {
                .Title = parts(0),
                .Author = parts(1)
            }
Public Class book
Property title As String
Property author As String
Property price As Double

Public Sub New(ByVal title As String, ByVal author As String, ByVal price As Double)
    _title = title
    _author = author
    _price = price
End Sub
End Class

Public Class Form1
Public booklist As List(Of book)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)     Handles Button1.Click
    Dim bookfile As String() = IO.File.ReadAllLines("c:\file.txt")
    For Each line As String In bookfile
        Dim bookinfo As String() = line.Split(",")
        Dim abook As New book(bookinfo(0), bookinfo(1), bookinfo(2))
        booklist.Add(abook)
    Next
End Sub
End Class