关于受这篇文章启发的可参数化查询 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 秒。
您知道如何改进第一个语法以提高性能吗?
最佳答案
更改 Expression
的参数类型:
public static void GetExpensesBy<TKey>( Expression<Func<Obj, TKey>> myGroupingProperty)
{
//...
}
传递 Func<T>
你调用GroupBy
来自 IEnumerable<T>
关于c# - Linq group by property 表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405274/