如何将数组项列表存储到一个数组中

how to store a list of array items in to one array

这是一个子例程,它读取包含员工详细信息的文本文件。 我已经将文件中的每一行都存储到临时数组中,并且我想这样做,以便每 5 lines/5 个数组项将它们存储到一个数组中。我该怎么做才能存储大小数组,例如。 0-4(5 项)到字符串类型的数组中?

示例:

  1. temparray[0] = 约翰·弗兰克
  2. temparray[1] = ID204
  3. temparray[2] = 固定工人
  4. temparray[3] = 经理
  5. temparray[4] = 0(额外付款)

到一个存储所有这 5 个列表的数组中,所以可能像:

对于 x = 0 到 4 步骤 1

store_array(1) = temparray(x)

下一个

但是在这样做之后,我使用 console.writeline 来显示 store_array(1) 但它只显示 0.

    Dim arremp() As String = IO.File.ReadAllLines(filename)     'adds each line as string array
    Dim temp As String = " "
    Dim flen As Integer = arremp.Length - 1 'get string length, index based, starting at 0 not 1.
    Dim temparray(flen) As String   'string array
    Dim i As Integer = 0
    '   Setting up an object variable for the streamreader (which is the path folder and its name).
    Dim objreader As New System.IO.StreamReader(filename, True) ' Has been set to true because the file exists and this will append(ADD) for the next str.
    '   if a file doesn't exists, it should be false which will ensure that a text file is created first.

    For Each myline In arremp
        temp = myline & vbCrLf
        temparray(i) = temp
        i = i + 1
    Next myline

您最好创建一个员工 class - 例如 :-

Private Class Employee
    Public Property Name As String
    Public Property ID As String
    Public Property Type As String
    Public Property JobTitle As String
    Public Property AdditionalPayments As Integer
End Class

然后不使用数组,而是像这样创建一个员工列表

Dim employees As New List(Of Employee)

要读取数据,您仍然可以使用 io.file 写入数据,但老实说,我建议您查看 streamreaders 和关键字 Using

Private Sub EmployeeData()
    'this is a more readable way of creating a nonexistant file or
    'reading from an existing one
    If Not IO.File.Exists(filename) Then
        'if the file exists create it
        IO.File.Create(filename)
        tempfile.Close()
    Else
        'otherwise read the data from the existing file
        Dim arremp() As String = IO.File.ReadAllLines(filename)     'adds each line as string array
        'you dont need i to track the number of items in the list of employees, just use employees.Count

        'Loop through the array 5 items at a time, create a tempEmployee
        'and add it to the list of employees
        For x As Integer = 0 To arremp.Count - 1 Step 5
            Dim tempEmployee As New Employee With {.Name = arremp(x),
                                                   .ID = arremp(x + 1),
                                                   .Type = arremp(x + 2),
                                                   .JobTitle = arremp(x + 3),
                                                   .AdditionalPayments = arremp(x + 4)
                                                   }
            employees.Add(tempEmployee)
        Next
    End If
End Sub

现在不用使用数组来指代员工,在 6 个月的时间里你将不记得哪个元素是什么意思,你可以使用更明显的 属性 名称,例如 ..

TextBox1.Text = employees(i).Name
TextBox1.Text = employees(i).JobTitle