vb.net 从 Ienumerable 中的部分信息为每个循环创建对象



摘要:我想在每个循环中创建对象。

我有一个类 - 仪表板,它有一些属性 - 长度、高度等。

此信息包含在 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 

最新更新