首页 >后端开发 >C++ >如何根据另一个列表中 ID 的顺序对列表进行排序?

如何根据另一个列表中 ID 的顺序对列表进行排序?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-19 12:01:09972浏览

How to Sort a List Based on the Order of IDs in Another List?

使用参考 ID 列表重新排序列表

此示例演示如何重新排列项目列表(例如文档)以匹配单独参考列表中的 ID 顺序。 当您需要维护两个相关数据集之间的一致性时,这是一项常见任务。 LINQ 提供了简洁的解决方案。

关键是将OrderBy方法与索引查找结合使用。我们在引用 ID 列表中找到每个项目 ID 的索引,并使用该索引来确定排序顺序。

代码如下:

<code class="language-csharp">docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();</code>

此代码片段有效地对 docs 列表进行重新排序,以反映 docIds 列表指定的顺序。 IndexOf 方法查找 d.Id 中每个 docIds 的位置,并且 OrderBy 使用这些索引进行排序。 最后的 .ToList() 将排序结果转换回列表。 这确保了 docs 中的项目顺序现在直接对应于 docIds 中的 ID 顺序。

以上是如何根据另一个列表中 ID 的顺序对列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn