我有一个带有一些标识符的列表,像这样:
List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
Morover,我还有另一个<T>项目列表,这些列表由上述ID表示。
<T>
List<T> docs = GetDocsFromDb(...)
我需要在两个集合中保持相同的顺序,以便其中的项List<T>必须与第一个集合处于相同的位置(由于搜索引擎评分的原因)。并且此过程无法在GetDocsFromDb()函数中完成。
List<T>
GetDocsFromDb()
如有必要,可以将第二个列表更改为其他结构(Dictionary<long, T>例如),但是我不希望更改它。
Dictionary<long, T>
是否有任何简单有效的方法来使用LINQ进行“根据某些ID进行排序”?
docs = docs.OrderBy(d => docsIds.IndexOf(d.Id)).ToList();