2011-10-10 45 views
2

鑑於:LINQ查詢組結果到一個數組

var detailList = new List<DetailItem>(); 

其中:

class DetailItem 
{ 
    string A; 
    MyType B; 
} 

能否LINQ查詢組字段A爲下列數據結構:

class GroupItem 
{ 
    string A; 
    List<MyType> AllBsWithinA; 
} 



IEnumerable<GroupItem> linqQuery = detailList.SomeLinqMagic(…); 

有問題的數據都是基於內存的,所以這是一個LINQ to Objects問題。

+0

字段聲明如下這將是私人,因此無法訪問類本身之外。你是否想讓他們成爲公共財產? – svick

+0

@svik - 沒有C#編譯器的情況下,我的自由式代碼編寫器沒有機會玩。 – camelCase

回答

9

這看起來簡單,除非我錯過了你的意思:

IEnumerable<GroupItem> linqQuery = detailList 
    .GroupBy(i => i.A) 
    .Select(g => new GroupItem() 
    { 
     A = g.Key, 
     AllBsWithinA = g.Select(i => i.B).ToList() 
    }); 
+0

沒有錯過我的問題是直截了當的。我會嘗試你的例子,並希望稍後給這個答案一個綠色的勾號,謝謝。 – camelCase