基于其他列条件的Linq顺序



我有一个包含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();

最新更新