让我们假设我有一个包含Username的Table,另一个包含FirstName。单个用户可以拥有多个FirstNames:
如何获取包含用户名和所有以逗号分隔的名字的记录?
我。即
Users
id | Username
1 | Test
Names
UserId | FirstName
1 | Mike
1 | John
我想收到一条包含
的记录测试,“迈克,约翰”
我该怎么做?
修改:如果“用户”表格中包含更多我想要的列,该怎么办?
我。即
id | Username | Status
1 | Test | Active
如何获得Test, Active, "Mike, John"
?
答案 0 :(得分:3)
您可以使用GroupBy
和String.Join
var userGroups = from u in users
join n in names
on u.ID equals n.UserID
group new{n, u} by n.UserID into UserGrp
select new
{
Username = UserGrp.Key,
Status = UserGrp.First().u.Status,
Names = string.Join(",", UserGrp.Select(x => x.n.Name))
};
foreach (var ug in userGroups)
Console.WriteLine("{0}, {1}, \"{2}\"", ug.Username, ug.Status, ug.Names);