c# - How to enable average sorting including empty members -
i need sort average value of member , objects can not calculated average function (empty collection). tried write this:
var userphotos = database.set<photo>().where(p => string.isnullorempty(userid) || p.clientprofileid == userid).tolist(); iorderedenumerable<photo> sortedphotos; switch (orderby) { case orderby.raiting: sortedphotos = userphotos.where(p => p.votes != null && p.votes.any()).orderbydescending(item => item.votes.average()) .thenbydescending(p => p.timeofcreation); break; default: sortedphotos = userphotos.orderbydescending(item => item.timeofcreation); break; } return sortedphotos.skip((page - 1)*pagesize).take(pagesize); i need include objects have > 0 votes, doesn't work properly. mistake? future answers!
something work:
sortedphotos = userphotos .orderbydescending(item => (item.votes == null || !item.votes.any()) ? -1 : item.votes.average()); the idea photos don't have votes, give them average vote of -1 (or other special value know less real votes can give you).
Comments
Post a Comment