LINQ クエリでの順序の保持
順序付けされた配列に対して LINQ 操作を使用する場合、配列の元の順序を維持することが重要です。この記事では、配列の順序を保持する操作と、それを変更または再定義する操作について検証します。
順序を絶対に保持する
次の操作は配列の順序を変更しません。
-
AsEnumerable: 既存の順序に影響を与えることなく、IEnumerable を別の IEnumerable に変換します。
-
Cast: シーケンスを維持しながら、要素を新しい型にキャストします。
-
Concat: 2 つのシーケンスを追加します。それぞれの順序を維持しながら一緒にsequence.
-
Select: 順序を変更せずにソース要素を結果要素にマップします。
-
ToArray: 順序を維持してシーケンスを配列に変換します。
-
ToList: シーケンスをリストに変換します。
順序の保持
これらの操作は、配列の順序を変更せずに要素をフィルターまたは追加します:
-
Distinct: 残りの要素の順序を維持しながら、重複した要素を削除します。 elements.
-
Except: ソース シーケンスの順序を維持して、ソース シーケンスには存在するが、指定されたシーケンスには存在しない要素を返します。
-
Intersect : 両方の順序を維持したまま、両方のシーケンスに存在する要素を返します。
-
OfType: 要素をタイプでフィルターし、一致する要素の順序を維持します。
-
Prepend: 要素をシーケンスの先頭に追加します。シーケンス (.NET の新機能) 4.7.1).
-
Skip: 残りの要素の順序を維持しながら、シーケンスの先頭から指定された数の要素をスキップします。
-
Skipwhile : 指定された条件が true の間、シーケンスの先頭から要素をスキップし、残りの要素の順序を維持します。 elements.
-
Take: 順序を維持して、シーケンスの先頭から指定された数の要素を返します。
-
Takewhile: からの要素を返します。指定された条件が true の間のシーケンスの開始。 order.
-
Where: 一致する要素の順序を維持しながら、指定された条件で要素をフィルターします。
-
Zip: 2 つのシーケンスの要素をペアにします。各シーケンスの順序を維持する、圧縮されたシーケンス (.NET 4 の新機能)。
以上がどのlinq操作が配列の元の順序を保持しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。