是否有一个函数来写/导出列表/类项目的值?



从外部应用程序中提取数据并将其写入具有几个子列表项的列表,下面是一个缩小到主列表创建的示例:

Public Class clMain
Public lsLevel_1 As New List(Of clLevel_1)
End Class
Public Class clLevel_1
Public sgName As String
Public lsLevel_2 As New List(Of clLevel_2)
End Class
Public Class clLevel_2
Public sgName As String
Public lsLevel_3 As New List(Of clLevel_3)
End Class
Public Class clLevel_3
Public sgName As String
Public sgComment As String
End Class
Module Code
Sub Main()
Dim lv_clMain As clMain = New clMain
For lv_i16Level_1 = 10 To 11
Dim lv_clLevel_1 As New clLevel_1
lv_clLevel_1.sgName = "Level 1: " & lv_i16Level_1
For lv_i16Level_2 = 20 To 21
Dim lv_clLevel_2 As New clLevel_2
lv_clLevel_2.sgName = "Level 2: " & lv_i16Level_2
For lv_i16Level_3 = 30 To 31
Dim lv_clLevel_3 As New clLevel_3
lv_clLevel_3.sgName = "Level 3: " & lv_i16Level_3
lv_clLevel_2.lsLevel_3.Add(lv_clLevel_3)
Next
lv_clLevel_1.lsLevel_2.Add(lv_clLevel_2)
Next
lv_clMain.lsLevel_1.Add(lv_clLevel_1)
Next
End Sub
End Module

一旦列表已"填写",我想写入/导出值到一个文件。完成这项任务的好方法是什么?我想创建一个以lv_clMain为参数的函数。但由于lv_clMain不是一个集合类型,它可以包含lsLevel_1的几个条目,我有点迷失了正确的方法。

多亏了用户Hursey,我找到了一个使用XML序列化的解决方案。

Function SerializeXml(ByVal obData As Object, ByVal sgFileName As String, tyData As Type)
Dim obXmlSerializer As System.Xml.Serialization.XmlSerializer = New System.Xml.Serialization.XmlSerializer(tyData)
Dim obSW As System.IO.TextWriter = New System.IO.StreamWriter(sgFileName)
obXmlSerializer.Serialize(obSW, obData)
obSW.Close()
End Function

最新更新