在受到这篇帖子LINQ group by property as a parameter的启发下,我得到了一个不错的可参数化查询,但性能有一定劣势。
public static void GetExpensesBy<TKey>( Func<Obj, TKey> myGroupingProperty)
{
var query = (from item in dataset
orderby item.ExpenseTime descending
select item).GroupBy(myGroupingProperty);
// ....
}
// ..
GetExpensesBy(p=> p.Column)
相对于直接查询,速度要慢得多
var query = (from item in expense
orderby item.ExpenseTime descending
select item).GroupBy(p => p.Column);
在一个包含13000行的表格中,两者之间的差异约为2秒与0.1秒。
你是否有任何想法如何改进第一种语法以提高性能?
Func<>
是在本地执行而不是在服务器上执行。 - Jeroen van Langen