【发布时间】:2021-11-02 22:54:39
【问题描述】:
我有一个这样的标识符列表:
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 的排序”?
【问题讨论】:
-
您确定每个
docId在docs中只出现一次,什么属性将保存Id或需要选择器Func<T, long>? -
第一个列表是否代表“主列表”?换句话说,第二个列表是代表第一个列表的一部分(或全部)的子集吗?
标签: c# linq sorting collections