c# - 实体对象上的 IQueryable.OrderBy
问题描述
我知道通过在一个类上实现 IComparable,比如……</p>
public class Person : IComparable<Person>
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int CompareTo(Person other)
{
var val = LastName.CompareTo(other.LastName);
return val == 0 ? FirstName.CompareTo(other.FirstName) : val;
}
}
…允许我打电话
IEnumerable.OrderBy(x => x.Person);
…代替
IEnumerable.OrderBy(x => x.Person.LastName)
.ThenBy(x => x.Person.FirstName);
我如何能够对 Person 实体上的 LINQ To SQL 中的 IQueryable.OrderBy 执行相同的操作?
解决方案
尝试做这样的事情:
IEnumerable.OrderBy(x => strig.Fromat("{0}{1}", x.Person.LastName, x.Person.FirstName);
或(如果您使用$
受支持的较新 C# 版本):
IEnumerable.OrderBy(x => $"{x.Person.LastName}{x.Person.FirstName}");
它应该通过考虑姓氏和名字来对您的项目进行排序(并且通过仅在列表中迭代一次来获得一些性能)。
希望能帮助到你!
推荐阅读
- mysql - 如何向已包含数据的 MariaDB 表添加键?
- deep-learning - 当我们更改输入图像大小时,Deeplab v3 输出会发生变化
- c# - 不同的祖先 C# 列表
- python - 拟合 Keras 模型会产生错误“常量折叠失败:无效参数:不支持的类型:21”
- git - 如何在 Android Studio 中的 git commit diff 期间编辑文件?
- c# - 从 Excel 获取数据 - 索引超出范围
- rust - 无法通过 arm-none-eabi-gdb 命令连接到 GDB 服务器
- linux - 如何将递归目录复制到平面目录
- android - FCM 不会立即发送数据消息
- django - 检查用户是否有新的发行说明并通知他