.NET 中使用 LINQ 保留集合順序
LINQ 提供了多種操作集合的方法。但是,某些操作可能會改變原始順序,這會影響需要特定順序的場景。本文探討了哪些操作保留順序,哪些操作修改順序。
保留順序的操作
為了保持集合的原始順序,請考慮以下操作:
-
絕對保留順序:
- AsEnumerable
- Cast
- Concat
- Select
- ToArray
- ToList
-
保留順序並進行篩選/添加:
- Distinct
- Except
- Intersect
- OfType
- Prepend
- Skip
- SkipWhile
- Take
- TakeWhile
- Where
- Zip
破壞順序的操作
如果您需要不確定的順序,請使用以下操作:
重新定義順序的操作
要顯式更改結果的順序,請使用以下操作:
- OrderBy
- OrderByDescending
- Reverse
- ThenBy
- ThenByDescending
根據規則重新定義順序的操作
這些操作根據特定條件更改順序:
- GroupBy:按每個 IGrouping 的第一個鍵排序,然後按每個組中元素的出現順序排序。
- GroupJoin:保留與每個外部元素匹配的外部和內部元素的順序。
- Join:類似於 GroupJoin,但保留外部和匹配內部元素的順序。
- SelectMany:調用選擇器並以不可預測的順序返回扁平化的序列。
- Union:按順序從第一個和第二個集合中生成元素,排除重複項。
以上是哪些 LINQ 運算會保留、修改或重新定義集合順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!