LINQ と配列の順序: どのメソッドが順序を維持し、どのメソッドが順序を維持しないのかについての詳細な説明
並べ替えられた配列に対して LINQ to Objects 操作を使用する場合は、元の配列の順序を破壊する操作を避けるように注意してください。次の分析が参考になります:
秩序を維持する絶対的な方法:
- Enumerable:
- キャスト:
- 連結:
- 選択:
- ToArray:
- リストへ:
これらのメソッドは、順序を維持しながらソース要素を結果要素にマップします。
順序を保つための通常の方法:
-
Distinct: 重複する要素をフィルターで除外します。
-
Except: 別のシーケンスに存在する要素をフィルターで除外します。
-
Intersect: 複数のシーケンス内の共通要素をフィルターします。
-
OfType: タイプに基づいて要素をフィルターします。
-
Prepend (.NET 4.7.1 の新機能): 指定された値を要素の前に追加します。
-
スキップ: 指定された数の要素をスキップします。
-
Skipwhile: 指定された条件が満たされるまで要素をスキップします。
-
Take: 指定された数の要素を返します。
-
Takewhile: 指定された条件が満たされるまで要素を返します。
-
Where: 述語に基づいて要素をフィルターします。
-
Zip (.NET 4 の新機能): 複数のシーケンス内の対応する要素をマージします。
注文を破棄する方法:
-
ToDictionary: 要素を辞書に変換し、順序なしのコレクションを生成します。
-
ToLookup: 要素をルックアップ テーブルに変換し、順序付けされていないコレクションを生成します。
順序を明示的に再定義する方法:
-
OrderBy: 要素を昇順に並べ替えます。
-
OrderByDescending: 要素を降順に並べ替えます。
-
Reverse: 要素の順序を逆にします。
-
ThenBy: 元の順序を維持したまま、要素を別の属性で並べ替えます。
-
ThenByDescending: 元の順序を維持したまま、要素を別の属性の降順で並べ替えます。
ルールに従って順序を再定義する方法:
- GroupBy:グループ要素を押して、各グループの要素の順序を維持します。
groupjoin:- キー接続要素に基づいて、各グループの外部ソースと要素の順序を維持します。
結合:
キー接続に基づいて要素を接続する順序が維持されます。 -
selectmany:一連のシーケンスを生成して、各シーケンスの要素を予測不可能な順序で結合します。
- ユニオン:複数のシーケンスをマージし、配列の順に要素を生成します。
これらの微妙な違いを理解することにより、LINQ操作を実行するときにアレイの目的の順序を維持し、さらなる治療または表示のための完全性を確保することができます。
以上が配列の順序を保持する LINQ メソッドと保持しない LINQ メソッドはどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。