0

假设我有一个包含用户名的表和另一个包含名字的表。一个用户可以有多个名字:

如何获取包含用户名和所有以逗号分隔的名字的记录?

IE

Users
id | Username
1 | Test

Names
UserId | FirstName
1 | Mike
1 | John

我想收到一份记录,其中包含

测试,“迈克,约翰”

我怎样才能做到这一点?

编辑:如果用户表将有更多我想要获得的列怎么办?

IE

id | Username | Status
1  | Test     | Active

如何获得Test, Active, "Mike, John"

4

1 回答 1

3

您可以使用GroupByString.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);
于 2012-09-24T10:47:54.693 回答