2

我有一个 DataTable 查询如下内容

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

我要做的是编写一个 LINQ 语句,该语句将返回一组 UserGroup 实例。UserGroup 类具有 UserGroupId 和 Users 的属性。Users 是一组 User 实例。然后,用户类具有 UserId 和 UserName 的属性。

可以使用单个 LINQ 语句来填充这样的层次结构吗?它会是什么样子?

太感谢了

4

2 回答 2

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);
}
于 2008-11-26T03:42:33.427 回答
-2

有 - 查看 GroupBy 和 Select 方法。

于 2008-11-26T03:21:01.207 回答