-4

I have a scenario where I am getting a data table with the following values:

 UserId   DeptId deptname  DependentName
  1          45     test       test1
  1          45     test       test2
  1          45     test       test3
  2          46     y          firstName
  2          46     y          firstName1
  2          46     y          firstName2

I need a LINQ query where I need to get one to get in the following format:

user id = 1
deptid = 45 
deptname = test

DependentName = {test1,tes2,test3}

user id = 2
deptid = 46 
deptname = y

DependentName = {firstName,firstName1,firstName2}
Alyssa Haroldsen
  • 3,652
  • 1
  • 20
  • 35

2 Answers2

0

What is a problem?

var result = ctx.Entity.GroupBy(u => new { 
   u.UserId,
   u.DeptId,
   u.DeptName
}).ToList().Select(grouped => new { 
    GroupKey = grouped.Key,
    DeptNames => string.Join(",", grouped.Select(gr => gr.DependentName)) 
});
pwas
  • 3,225
  • 18
  • 40
0

Based on MSDN :

public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(
    this IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector,
    Func<TSource, TElement> elementSelector
)

This should look like this :

melist.GroupBy(e = > new { e.UserId, e.DeptId, e.Deptname }, e);

This question was already answered here: C# Linq Group By on multiple columns

Community
  • 1
  • 1
mrogal.ski
  • 5,828
  • 1
  • 21
  • 30