c# - C# 使用起始位置和循环排序对象列表
问题描述
我有一个奇怪的问题:)
我有一个如下所示的对象列表:
var list = new []
{
new { Id = 1, Name = "Marcus" },
new { Id = 2, Name = "Mattias" },
new { Id = 3, Name = "Patric" },
new { Id = 4, Name = "Theodor" },
};
我想对提供“开始 id”的列表进行排序
例如,如果我提供“start id”3,结果应如下所示:
ID | 姓名 |
---|---|
3 | 帕特里克 |
4 | 西奥多 |
1 | 马库斯 |
2 | 马蒂亚斯 |
我不知道从哪里开始,所以我真的需要你们编码大神的帮助
该列表来自一个 sql 表,但对我来说,排序发生在哪里并不重要(在 sql 查询或 c# 代码中)
解决方案
Try this:
var list = new []
{
new { Id = 1, Name = "Marcus" },
new { Id = 2, Name = "Mattias" },
new { Id = 3, Name = "Patric" },
new { Id = 4, Name = "Theodor" },
};
var start_id = 3;
var max_id = list.Max(y => y.Id);
var result =
from x in list
orderby (x.Id + max_id - start_id) % max_id
select x;
I get:
推荐阅读
- python-3.x - 做 GRAD-CAM 时的“连接层”问题。如何在我的自定义功能模型中克服这个问题?
- r - 在R中计算数据框中的多行
- c - c语言十进制转二进制
- python - Python:字符串匹配不适用于正则表达式
- java - 无法在原始类型 int 上调用 contains(int)
- authentication - 如何在 ApostropheCMS 中添加用户?
- excel - 有没有办法从电子表格中读取信息并匹配并将信息添加到音乐文件中?
- fortran - 如何在 Fortran Executable 中静态链接 NetCDF
- c# - OAuth1.0 身份验证显示“无效签名 - 提供的签名不匹配。\”错误 401
- vue.js - 如何正确调用 NuxtServerInit?