Reordering a List Using a Reference ID List
This example demonstrates how to rearrange a list of items (e.g., documents) to match the order of their IDs in a separate reference list. This is a common task when you need to maintain consistency between two related datasets. LINQ provides a concise solution.
The key is to use the OrderBy
method in conjunction with an index lookup. We find the index of each item's ID in the reference ID list and use that index to determine the sorted order.
Here's the code:
<code class="language-csharp">docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();</code>
This code snippet efficiently reorders the docs
list to reflect the order specified by the docIds
list. The IndexOf
method finds the position of each d.Id
within docIds
, and OrderBy
uses these indices to sort. The final .ToList()
converts the ordered result back into a list. This ensures that the order of items in docs
now directly corresponds to the order of IDs in docIds
.
The above is the detailed content of How to Sort a List Based on the Order of IDs in Another List?. For more information, please follow other related articles on the PHP Chinese website!