2009-08-18 15 views
3

ich gruppieren möchten durch die WorkGroup.GroupId Eigenschaft auf der KlasseAusgang 2 Felder aus Linq Gruppe von

public class Employee 
{ 
    public int EmployeeID {get; set;} 
    public Group WorkGroup {get; set;} 
} 

aber ich ausgeben muß den Gruppennamen Eigenschaft (Welche Duplikate haben könnte, aber zwischen dem identisch sein gleiche groupid)

So etwas (was natürlich nicht funktioniert):

var grps = from emp in Emps 
      group emp by emp.WorkGroup.GroupID into g 
      select new { GroupID = g.Key, Title = g.Key.WorkGroup.GroupTitle, Employees = g }; 

ich für die Ausgabe suchen, die mir erlauben würde, zu tun:

foreach (var g in grps) 
{ 
    Console.WriteLine(g.Title + "-" + g.GroupID); 
    foreach (var e in g.Employees) 
    { 
    Console.WriteLine(e.EmployeeID); 
    } 
} 

Antwort

7

Gerade Gruppe von ID und Titel:

var grps = 
    from emp in Emps 
    group emp by new 
    { 
     GroupID = emp.WorkGroup.GroupID, 
     GroupTitle = emp.WorkGroup.GroupTitle 
    } into g 
    select new 
    { 
     GroupID = g.Key.GroupID, 
     GroupTitle = g.Key.GroupTitle, 
     Employees = g 
    };