c# - 从逗号分隔的 ID 重新排序列表
问题描述
我有一个要重新排序的对象列表。顺序在字符串中确定。
(我希望我当前的代码比文字解释得更好)
List<DataObject> objects = GetDataObjectsFromDatabase();
string order = "1,3,2";
List<DataObject> orderedObjects = new List<DataObject>
foreach(string index in order.Split(',')
{
orderedObjects.Add(objects.FirstOrDefault(x => x.id == index));
}
是否有单个 Linq 语句或更好的方法来执行此操作?
解决方案
前提是这.Select()
将按顺序发生:
var orderedObjects = order.Split(',').Select(int.Parse).Select(index => objects.FirstOrDefault(obj => obj.id == index).ToList();
推荐阅读
- java - 无法在活动之间传递数据。数据为空白
- python - 如何循环和删除包含子字符串的嵌套列表中的元素?
- javascript - npx create-react-app my-app 错误:rollbackFailedOptional
- php - 在构造函数中分配的 Laravel 作业新属性未在句柄方法中显示
- javascript - 为什么 CSS 在不同的页面大小上无法正常工作
- c# - 在 C# 中使用 SELECT 插入表时出现 Oracle 错误
- javascript - 如何在嵌入视频的末尾添加缩略图?
- android - 导航抽屉中的Android,在当前片段中调用方法
- java - 使用反射在 Java Map 中设置或获取数组
- python - 无论顺序如何,在 2 个列表之间查找共同元素 - python 2