Using LINQ on observable with GroupBy and Sum aggregate

Posted by Mark Oates on Stack Overflow See other posts from Stack Overflow or by Mark Oates
Published on 2012-04-06T17:21:07Z Indexed on 2012/04/06 17:29 UTC
Read the original article Hit count: 274

Filed under:
|
|
|
|

I have the following block of code which works fine;

var boughtItemsToday = (from DBControl.MoneySpent
            bought in BoughtItemDB.BoughtItems
            select bought);

BoughtItems = new ObservableCollection<DBControl.MoneySpent>(boughtItemsToday);

It returns data from my MoneySpent table which includes ItemCategory, ItemAmount, ItemDateTime.

I want to change it to group by ItemCategory and ItemAmount so I can see where I am spending most of my money, so I created a GroupBy query, and ended up with this;

var finalQuery = boughtItemsToday.AsQueryable().GroupBy(category => category.ItemCategory); 

BoughtItems = new ObservableCollection<DBControl.MoneySpent>(finalQuery);

Which gives me 2 errors;

Error 1 The best overloaded method match for 'System.Collections.ObjectModel.ObservableCollection.ObservableCollection(System.Collections.Generic.List)' has some invalid arguments

Error 2 Argument 1: cannot convert from 'System.Linq.IQueryable>' to 'System.Collections.Generic.List'

And this is where I'm stuck! How can I use the GroupBy and Sum aggregate function to get a list of my categories and the associated spend in 1 LINQ query?!

Any help/suggestions gratefully received.

Mark

© Stack Overflow or respective owner

Related posts about c#

Related posts about LINQ