Use LINQ to concatenate multiple rows into single row (CSV property)

后端 未结 6 1292
[愿得一人]
[愿得一人] 2020-11-27 19:42

I\'m looking for the LINQ equivalent to the Sybase\'s LIST() or MySQL\'s group_concat()

It\'ll convert:

User  Hobby
--------------
Bob   Football 
Bo         


        
6条回答
  •  孤街浪徒
    2020-11-27 20:28

    Or else we can do the following-

    var users = new[]
                    {
                    new { User="Bob", Hobby="Football" },
                    new { User="Bob", Hobby="Golf" },
                    new { User="Bob", Hobby="Tennis" },
                    new { User="Sue", Hobby="Sleeping" },
                    new { User="Sue", Hobby="Drinking" },
                    };
    
                    var userList = users.ToList();
                    var ug = (from user in users
                              group user by user.User into groupedUserList
                              select new { user = groupedUserList.Key, hobby = groupedUserList.Select(g =>g.Hobby)});
    
                    var ug2 = (from groupeduser in ug
                              select new{ groupeduser.user, hobby =string.Join(",", groupeduser.hobby)});
    

提交回复
热议问题