.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中文网其他相关文章!