been searching for a quick example of sorting a IQueryable (Using Linq To SQL) using a Aggregate value.
I basically need to calculate a few derived values (Percentage difference between two values etc) and sort the results by this.
i.e.
return rows.OrderBy(Function(s) CalcValue(s.Visitors, s.Clicks))
I want to call an external function to calculate the Aggregate. Should this implement IComparer? or IComparable?
thanks
[EDIT] Have tried to use:
Public Class SortByCPC : Implements IComparer(Of Statistic) Public Function Compare(ByVal x As Statistic, ByVal y As Statistic) As Integer Implements System.Collections.Generic.IComparer(Of Statistic).Compare Dim xCPC = x.Earnings / x.Clicks Dim yCPC = y.Earnings / y.Clicks Return yCPC - xCPC End Function End Class
LINQ to SQL doesn’t like me using IComparer
My solution:
This also catches any divide by zero exceptions