ホームページ >バックエンド開発 >C++ >別のリストの ID に基づいてオブジェクトのリストを並べ替えるにはどうすればよいですか?

別のリストの ID に基づいてオブジェクトのリストを並べ替えるにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-19 12:16:091008ブラウズ

How to Sort a List of Objects Based on IDs from a Separate List?

別のリストの ID に基づいてオブジェクトのリストを並べ替えます

場合によっては、別のリストに保存されている ID に基づいてオブジェクトのリストを並べ替える必要がある場合があります。次の点を考慮してください:

次の値を持つ docIds という名前の List<long> があります: { 6, 1, 4, 7, 2 }。さらに、docs 内の ID で表されるオブジェクトを格納する List<T> という名前の docIds があります。

あなたの目標は、両方のリスト内の項目の順序の一貫性を維持することです。これは、List<T> 内のオブジェクトが List<long> 内の対応する ID と同じ位置を占める必要があることを意味します。たとえば、docs 内の ID 1 のオブジェクトはインデックス 1 になければなりません。

List<T> を変更せずにこの並べ替えを実現するには、次のように LINQ を使用します。

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

この LINQ 式は、最初に IndexOf を使用して、docIds 内の各オブジェクト ID のインデックスを決定します。次に、このインデックスをソートキーとして使用し、List<T> 内のオブジェクトを List<long> 内の ID と効果的に位置合わせします。

以上が別のリストの ID に基づいてオブジェクトのリストを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。