小编典典

从另一个列表 ID 对列表进行排序

all

我有一个带有一些标识符的列表,如下所示:

List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };

Morover,我有另一个<T>项目列表,由上述 id 表示。

List<T> docs = GetDocsFromDb(...)

我需要在两个集合中保持相同的顺序,以便其中的项目List<T>必须与第一个中的项目位于相同的位置(由于搜索引擎评分的原因)。而这个过程不能在GetDocsFromDb()函数中完成。

如有必要,可以将第二个列表更改为其他结构(Dictionary<long, T>例如),但我不想更改它。

是否有任何简单有效的方法可以使用 LINQ 执行此“根据某些 ID 进行排序”?


阅读 75

收藏
2022-06-29

共1个答案

小编典典

docs = docs.OrderBy(d => docsIds.IndexOf(d.Id)).ToList();
2022-06-29