首页 > 解决方案 > vb.net 变量集合

问题描述

如何归档如下内容?
我希望能够遍历in但仍然可以像我在->中所做Collection的那样直接“访问”变量PartProgramsSend()Generate()(Program."VariableName".data).

Public Class ProgramManager

    Private Program As New CavityProgram

    Sub Generate()  
        Program.MainProg.data = GetDataFunction() 'fill with data
        Program.MainProg.path = "C:\Foo.txt"
        [...]
    End Sub

    Sub Send()
        For Each prog In Program            'which collection do i need to do THIS
            System.IO.File.WriteAllText(prog.path, prog.data)
        Next
    End Sub

End Class

Public Class CavityProgram
    Public MainProg As PartProgram
    Public Parameter As PartProgram
    Public Molding As PartProgram

    'Collection which stores all PartPrograms 

End Class

Public Structure PartProgram        'data object
    Public path As String
    Public data As String
End Structure

标签: vb.netcollections

解决方案


我找到了符合我要求的解决方案

Public Class ProgramManager
    Public Programs As New List(Of PartProgram) 'Stores all partprograms

Sub Generate()            
    Programs.Add(New PartProgram With {
                    .name = "FU2PIECE.MPF",
                    .data = System.IO.File.ReadAllText(pathTemplate & "\FU2PIECE.MPF", System.Text.Encoding.UTF8) _
                          .Replace("$DATE$", DateTime.Now.ToString("dd/MM/yy HH:mm:ss")) _
                          .Replace("$JOBINFO$", sji.ShortJobInfo) _
                          .Replace("$VERSION$", My.Application.Info.Version.Major & "." & My.Application.Info.Version.Minor)
                })

               [...]
End Sub

Sub Send()
      For Each prog In Me.Programs
            System.IO.File.WriteAllText(root & "\" & prog.name, prog.data)
      Next
End Sub

推荐阅读