linq - 基于其他列条件的 Linq 顺序
问题描述
我有一个列表,其中包含 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();
推荐阅读
- android - 图标更改不适用于 SwitchPreference
- llvm - LLVM:将 alloca 作为函数参数传递
- java - 将文本从一项活动转移到另一项活动
- reactjs - Reactjs 使用 Latex 渲染几何图形
- nativescript - NativeScript:运行 TNS Doctor 时仍然出现“Android SDK 未安装错误”
- mysql - 当外键没有要引用的值时插入一行
- ionic-framework - Ionic Camera 生成的字符串 URL 太大而无法在 Firebase 中存储(作为字符串)
- docker - Docker-compose 容器无法相互发送请求
- flutter - Flutter AppBar Icon 在所有屏幕上都没有响应
- css - 在 npm 中运行前缀时遇到问题