LINQ Group by с несколькими свойствами в VB.Net

Я потратил много времени на решение этой проблемы. Я могу выполнять простые запросы Group By LINQ (по одному свойству), но для нескольких полей я немного застрял ... Вот пример того, что я хочу сделать на LINQPad:

dim lFinal={new with {.Year=2010, .Month=6, .Value1=0, .Value2=0}, 
            new with {.Year=2010, .Month=6, .Value1=2, .Value2=1},
            new with {.Year=2010, .Month=7, .Value1=3, .Value2=4},
            new with {.Year=2010, .Month=8, .Value1=0, .Value2=1},
            new with {.Year=2011, .Month=1, .Value1=2, .Value2=2},
            new with {.Year=2011, .Month=1, .Value1=0, .Value2=0}}

Dim lFinal2 = From el In lFinal
              Group el By Key = new with {el.Year,el.Month}
              Into Group
              Select New With {.Year = Key.Year, .Month=Key.Month, .Value1 = Group.Sum(Function(x) x.Value1), .Value2 = Group.Sum(Function(x) x.Value2)}

lFinal.Dump()
lFinal2.Dump()

Список lFinal состоит из 6 элементов, я хочу, чтобы в lFinal2 было 4 элемента: 2010-6 и 2011-1 должны сгруппироваться.

Заранее спасибо.

9
задан Joss57 10 June 2011 в 15:49
поделиться