c# - Refactor GroupBy to avoid slowing down operation on big dataset -


i have big collection need newest item based on 2 properties. first step ordering list based on date prop. fine , pretty quick.

then group newlist 2 properties, , take first item each.

var 1 = fisks.where(s=>s.havn.id == 1).orderbydescending(s=>s.date); var 2 = one.groupby(s=>new {s.arter.name, s.sort}); var 3 = two.select(s=>s.firstordefault()); 

this works, slow when using on large collection. how can avoid using groupby still same result?

thanks!

using linq first step , taking first ones in loop gives more control on process , avoids grouping altogether:

var query = fisks     .where(f => f.havn.id == 1)     .orderbydescending(f => f.date)     .thenby(f => f.arter.name)     .thenby(f => f.sort); var list = new list<fisk>(); foreach (fisk fisk in query) {     if (list.count == 0) {         list.add(fisk);     } else {         fisk last = list[list.count - 1];         if (fisk.sort != last.sort || fisk.arter.name != last.arter.name) {             list.add(fisk);         }     } } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -