2009-09-15 89 views
2

我有一個對象集合,它已被填充爲Dim XXX As IEnumerable(Of MyObject)。在MyObject中有一個屬性,我想按組合,例如MyObject.MyCode。如何使用LINQ對象集合中的屬性進行分組?

看看LINQ的例子,不清楚Group XX By INTO語法在做什麼,我無法理解它。

因此,我所追求的是根據MyCode的值進行分組的能力,並查看XXX中每個值的數量。

我知道我沒有解釋得很好,但希望有一個LINQ的人會得到它。

感謝

瑞安

回答

3

下面的C#代碼顯示瞭如何做到這一點(對不起,但我不是一個VB.NET人):

var myGroups = from p in myObject 
       group p by p.MyCode into g 
       select new { Category1 = g.Key, Category = g }; 

into關鍵字基本上把group的結果放到一個新的item中,你可以在你選擇的部分中引用它。

1

從裝運OrderTable _

集團通過Shipment.ShippingZip _

成總的= SUM(Shipment.Cost),平均(Shipment.Cost)

2

基本上是一個「分組依據」操作有兩個突出:

  • 你的希望將是什麼? (關鍵)
  • 你想讓這個小組包含什麼? (值)

例如,假設我們有一羣人。你可以按他們的年齡分組他們的名字,例如

  • 18:鮑勃,傑夫,戴夫
  • 21:珍妮弗,馬特

如果你直接使用GroupBy方法,你只需要指定密鑰選擇器,在這種情況下,值選擇器默認爲「序列中的值」(例如在上面的示例中,它將默認爲「按年齡對Person對象進行分組」)。

如果您使用查詢表達式語法,那將取決於您使用的是哪種語言。你可以有效地忽略「入」部分,雖然 - 這只是一個查詢延續;這就好像在說:「我不希望我在查詢中使用的任何其他變量,只是分組的結果」(然後可以在查詢的後續位中使用它們)。

相關問題