【问题标题】:LINQ grouping/subquery to fill a hierarchy data strcutureLINQ 分组/子查询以填充层次结构数据结构
【发布时间】:2008-11-26 02:56:44
【问题描述】:
我有一个 DataTable 可以查询如下内容
usergroupid...userid......username
1.............1...........John
1.............2...........Lisa
2.............3...........Nathan
3.............4...........Tim
我要做的是编写一个 LINQ 语句,该语句将返回一组 UserGroup 实例。 UserGroup 类具有 UserGroupId 和 Users 的属性。 Users 是一组 User 实例。然后,User 类具有 UserId 和 UserName 的属性。
可以用一条 LINQ 语句填充这样的层次结构吗?它会是什么样子?
谢谢一百万
【问题讨论】:
标签:
linq
data-structures
grouping
hierarchy
subquery
【解决方案1】:
看看这个,希望对你有帮助
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);
}
【解决方案2】:
有 - 查看 GroupBy 和 Select 方法。