我有一个包含ID, Name, Country, State等列的列表
order语句需要按照以下方式执行
.ToList().OrderByDescending(first=>t.Country).ThenBy(**if state=='GA' then ID else Name**)
我的问题是如何根据其他列条件做这个ThenBy子句?
所以这是正确的,你不想在数据库中订购,但在内存中?即使这样,在开始排序之前也不应该使用ToList
,而应该使用AsEnumerable
并在末尾添加ToList
。
var resultList = yourQuery.AsEnumerable() // Linq-To-Objects as desired
.OrderByDescending(x => x.Country)
.ThenBy(x => x.state == "GA" ? x.ID.ToString() : x.Name)
.ToList();