一直在寻找使用聚合值对 IQueryable(使用 Linq To SQL)进行排序的快速示例。
我基本上需要计算一些派生值(两个值之间的百分比差异等)并以此对结果进行排序。
IE
return rows.OrderBy(Function(s) CalcValue(s.Visitors, s.Clicks))
我想调用一个外部函数来计算聚合。这应该实现 IComparer 吗?还是 IComparable?
谢谢
[编辑] 尝试使用:
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 不喜欢我使用 IComparer