在 LINQ 查询中保留顺序
在有序数组上使用 LINQ 操作时,保持数组的原始顺序至关重要。本文将研究哪些操作会保留数组的顺序,以及哪些操作会更改或重新定义数组的顺序。
绝对保留顺序
以下操作不会更改数组的顺序:
-
AsEnumerable:转换现有的IEnumerable 到另一个 IEnumerable 而不影响顺序。
-
Cast:将元素转换为新类型,保留其序列。
-
Concat:附加两个序列共同维护各自的秩序序列。
-
Select:将源元素映射到结果元素而不重新排序。
-
ToArray:将序列转换为数组,保留其顺序。
-
ToList:将序列转换为列表,保留其
保留顺序
这些操作过滤或添加元素而不重新排序数组:
-
不同:删除重复元素,同时保留剩余元素的顺序elements.
-
Except:返回源序列中存在但不在指定序列中的元素,保留源序列的顺序。
-
Intersect :返回两个序列中存在的元素,保留两个序列的顺序序列。
-
OfType:按类型过滤元素,保留匹配元素的顺序。
-
Prepend:将元素添加到序列的开头序列(.NET 中的新功能4.7.1).
-
Skip:从序列开头跳过指定数量的元素,保留剩余元素的顺序。
-
SkipWhile :当指定条件为真时,从序列开头跳过元素,保留剩余元素的顺序
-
Take:从序列开头返回指定数量的元素,保留其顺序。
-
TakeWhile:返回来自序列的元素当指定条件为真时序列的开始,保留它们order.
-
Where:按指定条件过滤元素,保留匹配元素的顺序。
-
Zip:将来自两个序列的元素配对压缩序列(.NET 4 中的新功能),维护每个序列的顺序。
以上是哪些 LINQ 操作保留数组的原始顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!