摘要:我想在每个循环中创建对象。
我有一个类 - 仪表板,它有一些属性 - 长度、高度等。
此信息包含在 XML 文档中,但我类的属性只是 XML 中信息的一小部分。
我已经创建了一个 XElement 集合,我可以迭代这些集合,但是如何在循环的每次迭代中创建我的对象?
Dim Col_DashBoards As IEnumerable(Of XElement) = From XDashboard In XDocument.Load(filename).Descendants("dashboard")
For Each XDashboard In Col_DashBoards
'PseudoCode
Dim Xdashboard.Name as New DashboardClassObject
Xdashboard.Name.Height = XDashboard.Element("Height").value
...
Next
如果我正确理解了您的问题,您希望基于 XML 文档中的数据子集创建一个新对象?
下面是一个函数,它将为每个匹配的节点生成一个新DashboardClassObject
并填充该对象。返回类型DashboardclassObject
的列表。
Public Function GenerateDashBoardFromXML(filename as string) As List(Of DashboardClassObject)
Dim dashboardList As List(Of DashboardClassObject) = New List(Of DashboardClassObject)()
Dim Col_DashBoards As IEnumerable(Of XElement) = From XDashboard In XDocument.Load(filename)?.Descendants("dashboard")
For Each XDashboard In Col_DashBoards
Dim dashboard As DashboardClassObject = New DashboardClassObject () With {
.Name = XDashboard.Element("Height")?.value
}
dashboardList.Add(dashboard)
Next
return dashboardList
End Function
应该注意的是,这里使用了空检查。仅当找到匹配的元素时,才会填充以下内容。此处也可以选择空合并运算符。
.Name = XDashboard.Element("Height")?.value