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

时间:2018-02-10 13:39:50

标签: .net arrays vb.net visual-studio visual-studio-2012

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

示例:

  1. temparray [0] = John Frank
  2. temparray [1] = ID204
  3. temparray [2] =永久工作者
  4. temparray [3] =经理
  5. temparray [4] = 0(额外付款)
  6. 到一个存储所有这5个列表的数组中,所以可能像:

    对于x = 0到4步骤1

    store_array(1)= temparray(x)

    下一个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
    

1 个答案:

答案 0 :(得分:0)

您最好创建一个Employee类 - 例如: -

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编写数据,但说实话我建议您查看流程读取器和关键字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