2
我有以下方法:LINQ的ThenBy()拋出「爲最佳重載方法匹配ThenBy()有一些無效參數」異常
public List<LambdaExpression> defaultSortExpressions { get; set; }
private IQueryable<TEntity> orderEntries(IQueryable<TEntity> entries)
{
var n = 0;
foreach (var sortExpression in defaultSortExpressions)
{
if (n == 0)
{
entries = Queryable.OrderBy(entries, (dynamic)sortExpression);
}
else
{
entries = Queryable.ThenBy(entries, (dynamic)sortExpression);
}
n = n + 1;
}
return entries;
}
在執行TheyBy()
線,我得到下面的異常:
「關於 'System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>)' 最好的重載的方法匹配具有一些無效參數」}
System.Exception的{ Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
爲什麼這不起作用?
我認爲你的意思是'== 0'而不是'<0'。 '清單 .Count'永遠不會返回負數,但如果列表爲空,則代碼當前會中斷。 –
謝謝!給出的示例代碼和將'entries'轉換爲'dynamic'都可以工作。 – im1dermike
@ im1dermike:Jon在回答中還指出,他刪除了可以將它轉換爲IOrderedQueryable而不是動態的。我更願意儘可能減少「動態」的使用。 –
StriplingWarrior