首页 > 解决方案 > 基于其他列条件的 Linq 顺序

问题描述

我有一个列表,其中包含 ID、名称、国家/地区、州等列

订单声明需要采用以下方式

.ToList().OrderByDescending(first=>t.Country).ThenBy(**if state=='GA' then ID else Name**)

我的问题是如何根据其他列条件执行此 ThenBy 子句?

标签: linqlinq-to-sql

解决方案


所以你不想在数据库中排序而是在内存中排序是正确的吗?即使这样,您也不应该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();

推荐阅读