ホームページ > バックエンド開発 > C++ > LINQ を使用して別のリストの識別子の順序に基づいてリストを並べ替える方法

LINQ を使用して別のリストの識別子の順序に基づいてリストを並べ替える方法

Patricia Arquette
リリース: 2025-01-19 12:12:11
オリジナル
289 人が閲覧しました

How to Sort a List Based on the Order of Identifiers in Another List Using LINQ?

LINQ を使用した別のリストの識別子に基づくリストの並べ替え

多くのプログラミング シナリオでは、2 つのリストが存在することがあります。1 つは識別子を含み、もう 1 つは関連付けられた項目を含んでいます。それらの識別子を使用して。両方のリストの項目の順序を同じに維持する必要がある場合に、問題が発生します。この記事では、LINQ を使用してこの問題に対処するシンプルで効率的なソリューションを提供します。

識別子のリストがあるとします。

List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
ログイン後にコピー

また、次の ID で表される項目のリストもあるとします。 docIds:

List<T> docs = GetDocsFromDb(...);
ログイン後にコピー

あなたの目標は、対応するドキュメントのリストを昇順に並べ替えることです。 docId の識別子。両方のリストの項目の順序は同一である必要があります。

次の LINQ 式は、この問題を解決します。

docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
ログイン後にコピー

説明:

  1. OrderBy(d => ; docIds.IndexOf(d.Id)): このラムダ式は並べ替え基準を指定します。 docIds リスト内の項目の ID のインデックスを取得し、docIds 内の ID の位置に基づいてドキュメント リストを効率的に並べ替えます。
  2. ToList(): これにより、並べ替えられた結果が新しいリストに変換され、

このメソッドは、docId 内の識別子に基づいてドキュメント リストを効率的に並べ替えます。両方のリストの項目は同じ順序です。

以上がLINQ を使用して別のリストの識別子の順序に基づいてリストを並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート