2008-11-26 52 views
2

我有一個查詢了類似下面LINQ分組/子查詢,以填補一個層次數據晶格結構

usergroupid...userid......username 
1.............1...........John 
1.............2...........Lisa 
2.............3...........Nathan 
3.............4...........Tim 

我試圖做的是寫一個LINQ語句,將返回用戶組實例的數組的DataTable 。 UserGroup類具有UserGroupId和Users的屬性。用戶是一組用戶實例。 User類然後具有UserId和UserName的屬性。

填充這樣的層次結構可以用單個LINQ語句完成,它看起來像什麼?

萬分感謝

回答

5

檢查了這一點,希望這有助於

var users = new[] 
{ 
    new {UserGroupId = 1, UserId = 1, UserName = "John"}, 
    new {UserGroupId = 1, UserId = 2, UserName = "Lisa"}, 
    new {UserGroupId = 2, UserId = 3, UserName = "Nathan"}, 
    new {UserGroupId = 3, UserId = 4, UserName = "Tim"} 
}; 

var userGroups = from user in users 
       group user by user.UserGroupId into userGroup 
       select new { 
           UserGroupId = userGroup.Key, 
           Users = userGroup.ToList() 
          }; 

foreach (var group in userGroups) 
{ 
    Console.WriteLine("{0} - {1}",group.UserGroupId, group.Users.Count); 
} 
+0

@rahan打我it..dam你;) – 2008-11-26 03:44:01

-2

有 - 看的GroupBy和選擇的方法。