2012-06-18 17 views
0

這是我的對象類型:如何訪問在另一個對象中聲明爲列表的對象的屬性?

public class Room 
{ 


    public Giver Giver 
    { 
     get; 
     set; 
    } 

    [XmlElement("Receiver")] 
    public List<Receiver> Receiver 
    { 
     get; 
     set; 
    } 



} 

public class Receiver 
{ 
    [XmlAttribute("type")] 
    public string Type 
    { 
     get; set; 
    } 

    [XmlAttribute("Id")] 
    public String Id 
    { 
     get; set; 
    } 


} 

    class Program 
{ 
    static void Main(string[] args) 
    { 

List<Room> list = new List<Room> 
     { 
      new Room 
      { 

       Giver = new Giver{ Type="Generous", PID="something"}, 
       Receiver = new List<Receiver>{new Receiver{Type="test1", Id="test2"}, 
               new Receiver{Type="test3", Id="test4"}, 
               new Receiver{Type="test5", Id="test6"}}, 




      } 


     }; 

    } 


} 

如果我宣佈名單的eRoom,我怎麼能遍歷eRoom的列表,其中一個接收器列表聲明並訪問接收器的屬性?

例如,我有:

List<Room> eroom; 



for (int i = 0; i < eroom.Count; i++) 
     { 
      Console.WriteLine("Giver Type: " + eroom[i].Giver.Type); 
      Console.WriteLine("Giver PID: " + eroom[i].Giver.PID); 

      //code below returns error 
      Console.WriteLine("Receiver Id: " + eroom[i].Receiver.Id); 

     } 

如何訪問接收器的ID內的循環?

+0

請問你真正想要做什麼?你已經發布了代碼來訪問接收者ID? Wat錯誤返回 –

回答

0
List<Room> eroom; 
eroom.ForEach((room) =>{ 


      Console.WriteLine("Giver Type: " + room.Giver.Type); 
      Console.WriteLine("Giver FNm: " + room.Giver.PID); 
      room.Receiver.ForEach((receiver) =>{ 

      Console.WriteLine(receiver.Id); 

      }); 

}); 
0

您需要在之一的第二個循環。由於Receiver(變量,而不是類)是一個列表,每個ID中都有多個ID。 你需要這樣的事:

foreach (Receiver r in eroom[i].Receiver) 
    Console.WriteLine("Receiver Id: " + r.Id; 

你也可以使用一個正常的循環,用0和eRoom的[I] .Reciever.Count爲界。

相關問題