2008-11-26 101 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和选择的方法。