OrderBy子句出現問題時對排序沒有任何影響。我已經在調試器中解決了這個問題,並確保這是一種情況,即代碼的分類行正在被觸發,並且在沒有應用順序之後查看結果。Linq OrderBy在If語句中不工作
public static IEnumerable<DDLOptions<TValueType>> GetDDLOptionsViewModel<TClass, TValueType>(
IEnumerable<TClass> list,
Func<TClass, TValueType> value,
Func<TClass, string> displayText,
bool sort = true
)
{
List<DDLOptions<TValueType>> ddlOptions;
ddlOptions = list.Select(
l => new DDLOptions<TValueType>
{
Value = value(l),
DisplayText = displayText(l)
}
).ToList(); <========== Works if I put the Order By here.
if (sort)
{
ddlOptions.OrderBy(l => l.DisplayText); <===== Does NOT work here.
}
return ddlOptions;
}
最簡單的方法就是將'.ToList()'移動到'return'語句。 –
@MattiasBuelens可能的唯一的事情就是定義了'ddlOptions',你將不能重新分配它:'OrderBy'返回一個'IOrderedEnumerable'而不是'List '。這就是爲什麼我說乍得可能不得不調整類型或返回邏輯。 –
是的,但這應該是一個簡單的解決方法。 'var'在這裏也很有用。 –