2

単純化された 2 つのクラスを想定

Class Room {
    String Name {get; set;}
    String Type {get;set;}
    List<Employee> Employees {get; set;}
}
Class Employee {
    Int64 ID {get;set;}
    Room Parent {get; set;}
}

データベースから XML データを取得し、LINQ を使用してこの XML をオブジェクトに読み込みます。

List<Room> rooms = new List<Room>();
rooms = 
    (
        from r in XDocument.Load(reader).Root.Elements("Room") select new Room {
            Name = r.Attribute("name").Value,
            Type = r.Attribute("type").Value,
            Employees = 
                (
                    from e in r.Elements("Employee") select new Employee {
                    ID = (Int64)e.Attribute("hrid"),
                    Parent = ?????
                }
            ).ToList()
        }
    ).ToList();

??????に注意してください あそこで?それが問題です。従業員内の親ルームへの参照を作成するにはどうすればよいですか?

4

1 に答える 1

0

これはベスト プラクティスではありませんが、親に null を設定するか、最初に破棄することができます。リストを作成したら、部屋を反復処理して従業員の親を設定できます。

foreach (var room in rooms)
{
    for (int i = 0; i < room.Employees.Count; i++)
    {
        room.Employees[i].Parent = room;
    }
}
于 2012-11-27T14:23:20.273 に答える