2011-11-11 39 views
0

我有这段代码。在同一个LinqToXml查询中从联系人写手机?

Dim contact1 As XElement = _ 
     <contacts> 
      <contact> 
       <%= From contact In contacts _ 
        Select <name><%= contact.Nom %></name> %> 
      </contact> 
     </contacts> 

这段代码实际上选择接触

有2个对象,联系人和电话。联系人可以保存电话号码列表。在这里,类细节...

Public Class Contact 

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

    Private m_Phones As List(Of Phone) 
    Public Property Phones() As List(Of Phone) 
     Get 
      Return m_Phones 
     End Get 
     Set(ByVal value As List(Of Phone)) 
      m_Phones = value 
     End Set 
    End Property 

End Class 

Public Class Phone 

    Private m_Contact As Contact 
    Public Property Contact() As Contact 
     Get 
      Return m_Contact 
     End Get 
     Set(ByVal value As Contact) 
      m_Contact = value 
     End Set 
    End Property 

    Private m_Number As String 
    Public Property Number() As String 
     Get 
      Return m_Number 
     End Get 
     Set(ByVal value As String) 
      m_Number = value 
     End Set 
    End Property 

End Class 

我怎样包括<phone type="...">...</phone>之间的这种查询为他们每个人的手机?

奖励(+1):如何包含该类型?

谢谢。

+1

你可能要张贴类您拥有的对象的定义和一些示例数据。目前还不清楚你有什么样的数据和你想要什么样的结果。 –

+0

我添加了类定义..但是关于数据......可以是基于这些定义的任何类型的数据。 – Rushino

回答

0

您还没有描述清楚你想要的结果,或者是什么问题,也许下面的代码示例帮助:

Dim contact1 As New Contact() With { 
    .Name = "John Doe", 
    .Phones = New List(Of Phone) From {New Phone() With {.Number = "555 12345"}, New Phone() With {.Number = "123 54321"}} 
} 
Dim contacts As New List(Of Contact)() From {contact1} 
Dim contactElements As XElement = _ 
    <contacts> 
     <%= From contact In contacts 
      Select <contact> 
         <name><%= contact.Name %></name> 
         <phones> 
          <%= From phone In contact.Phones 
           Select <phone><%= phone.Number %></phone> 
          %> 
         </phones> 
        </contact> 
     %> 
    </contacts> 

输出是

<contacts> 
    <contact> 
    <name>John Doe</name> 
    <phones> 
     <phone>555 12345</phone> 
     <phone>123 54321</phone> 
    </phones> 
    </contact> 
</contacts> 
+0

虽然我很清楚为混乱感到抱歉。结果正是你写的我不需要一些特殊的结果,否则我会说这是嘿嘿。你的代码正是我需要的。谢谢。 – Rushino