首页 > 解决方案 > 从逗号分隔的 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 语句或更好的方法来执行此操作?

标签: c#listlinq

解决方案


前提是这.Select()将按顺序发生:

var orderedObjects = order.Split(',').Select(int.Parse).Select(index => objects.FirstOrDefault(obj => obj.id == index).ToList();


推荐阅读