多くのプログラミング シナリオでは、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();
説明:
このメソッドは、docId 内の識別子に基づいてドキュメント リストを効率的に並べ替えます。両方のリストの項目は同じ順序です。
以上がLINQ を使用して別のリストの識別子の順序に基づいてリストを並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。