基于其他一些列条件的 Linq 顺序

Linq order based on some other column condition

我有一个包含 ID、姓名、国家/地区、州等列的列表

订单声明需要按以下方式

.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();