Какую структуру данных .NET я должен использовать? - PullRequest
3 голосов
/ 29 января 2009

Вот структура данных, которые мой объект должен предоставить (данные на самом деле НЕ хранятся в XML, это был просто самый простой способ проиллюстрировать компоновку):

<Department id="Accounting">
  <Employee id="1234">Joe Jones</Employee>
  <Employee id="5678">Steve Smith</Employee>
</Department>
<Department id="Marketing">
  <Employee id="3223">Kate Connors</Employee>
  <Employee id="3218">Noble Washington</Employee>
  <Employee id="3233">James Thomas</Employee>
</Department>

Когда я десериализирую данные, как мне представить их в терминах свойств моего объекта? Если бы это были просто Department и EmployeeID, я бы использовал словарь. Но мне также нужно связать имя EmployeeName.

Ответы [ 4 ]

7 голосов
/ 29 января 2009
Class Department
   Public Id As Integer
   Public Employees As List(Of Employee)
End Class

Class Employee
   Public Id As Integer
   Public Name As String
End Class

Что-то в этом роде (не помню мой синтаксис VB). Обязательно используйте Свойства по сравнению с открытыми членами ...

6 голосов
/ 29 января 2009

Класс отдела (с идентификатором и именем), который содержит коллекцию объектов Employee (в том числе и имени).

4 голосов
/ 29 января 2009
Public Class Employee

    Private _id As Integer
    Public Property EmployeeID() As Integer
        Get
            Return _id
        End Get
        Set(ByVal value As Integer)
            _id = value
        End Set
    End Property

    Private _name As String
    Public Property Name() As String
        Get
            Return _name
        End Get
        Set(ByVal value As String)
            _name = value
        End Set
    End Property


End Class

Public Class Department

    Private _department As String
    Public Property Department() As String
        Get
            Return _department
        End Get
        Set(ByVal value As String)
            _department = value
        End Set
    End Property

    Private _employees As List(Of Employee)
    Public Property Employees() As List(Of Employee)
        Get
            Return _employees
        End Get
        Set(ByVal value As List(Of Employee))
            _employees = value
        End Set
    End Property

End Class
2 голосов
/ 29 января 2009
  • Объект отдела
  • Объект сотрудника
  • Объект employeeCollection. (необязательно, вы можете просто использовать Список (Сотрудника))

Отметьте их как сериализуемые, и затем вы можете (де) сериализовать их в любой формат, который вам нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...