vb.net создает объекты для каждого цикла из частичной информации в Ienumerable
Резюме: я хочу создать объекты для каждого цикла.
У меня есть класс - Dashboard, у которого есть некоторые свойства - длина, высота и т. Д.
Эта информация содержится в документе 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
1 ответ
Если я правильно понял ваш вопрос, вы хотите создать новый объект на основе подмножества данных из документа 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
Следует отметить, что здесь используется проверка Null. Ниже заполняется только если найден соответствующий элемент. Нулевой оператор объединения также является опцией здесь.
.Name = XDashboard.Element("Height")?.value