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"}},




            }


        };

    }


}   

List eroomを宣言し た場合、Receiver リストが宣言されている eroom リストを反復処理し、Receiver の属性にアクセスするにはどうすればよいですか?

たとえば、私は持っています:

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);

        }

forループ内で受信者のIDにアクセスするにはどうすればよいですか?

4

2 に答える 2

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);

             });

});
于 2012-06-18T14:55:42.620 に答える
0

ループの中に 2 つ目のループが必要ですeroom。(クラスではなく変数) はリストであるためReceiver、それぞれに複数の ID があります。次のようなものが必要です。

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

0 と eroom[i].Reciever.Count を境界として使用して、通常の for ループを使用することもできます。

于 2012-06-18T14:56:39.547 に答える