2013-03-07 79 views
2

我有這個疑問:LINQ的反向的GroupBy

from e in Employee 
join t in TimeTable 
    on e.Id equals t.EmpId 
group new {e,t} by e.Id into g 
orderby g.Key 
select new 
{ 
    Emp = g.Key, 
    Items = g.Select(c => c.t.OtherTable.Somevalue).Distinct() 
} 

它工作正常,但我需要扭轉組合,這樣它會小組OtherTable.Somevalue

我該怎麼做,所有Employees

回答

2

可能喜歡以下這一點,將工作

from e in Employee 
join t in TimeTable 
    on e.Id equals t.EmpId 
group new {e,t} by t.OtherTable.Somevalue into g 
orderby g.Key 
select new 
{ 
    SomeValue = g.Key, 
    Emplyees = g.Select(c => c.e.Id).Distinct() 
} 
+0

你的先生是個天才 - 謝謝。我在'select'上編輯了一下它的工作原理 - 但你的解決方案還是很聰明的。謝謝 – 2013-03-07 13:57:01

+0

@JensKloster - 請記得在可以的時候接受答案。 – JDB 2013-03-07 13:58:11

+0

@ Cyborgx37我嘗試了 - 但它不會讓我 - ..但 – 2013-03-07 13:59:09