我有查询出类似下面

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

我试图做的是写一个LINQ语句,将返回用户组实例的数组。该用户组类有UserGroupId和用户的属性。用户是用户实例的数组。然后,用户类具有用户ID和用户名的属性。

可以填补这样的层次结构与单个LINQ语句来完成,并会是什么样子呢?

由于一百万

有帮助吗?

解决方案

检查了这一点,希望这有助于

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

其他提示

有是 - 看的GroupBy和选择方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top