Collections.Seq 模块 (F#)
针对可枚举序列的基本操作。
命名空间/模块路径: Microsoft.FSharp.Collections
程序集:FSharp.Core(在 FSharp.Core.dll 中)
module Seq
备注
有关 F# 中序列的概述,请参见序列 (F#)。
值
值 |
说明 |
---|---|
append : seq<'T> -> seq<'T> -> seq<'T> |
将两个给定枚举封装为单个串联的枚举。 |
average : seq<^T> -> ^T |
返回序列中元素的平均值。 |
averageBy : ('T -> ^U) -> seq<'T> -> ^U |
返回通过将函数应用于序列的每个元素而生成的结果的平均值。 |
cache : seq<'T> -> seq<'T> |
返回一个序列,该序列对应于输入序列的缓存版本。 |
cast : IEnumerable -> seq<'T> |
将松散类型化 System.Collections 序列封装为类型化序列。 |
choose : ('T -> 'U option) -> seq<'T> -> seq<'U> |
将给定函数应用于列表的每个元素。 返回由各元素(该函数返回了 Some )的结果组成的列表。 |
collect : ('T -> 'Collection) -> seq<'T> -> seq<'U> |
将给定函数应用于序列的每个元素并将所有结果串联在一起。 |
compareWith : ('T -> 'T -> int) -> seq<'T> -> seq<'T> -> int |
使用给定比较函数逐个元素比较两个序列。 |
concat : seq<'Collection> -> seq<'T> |
将给定的枚举集合的枚举组合为单个串联的枚举。 |
countBy : ('T -> 'Key) -> seq<'T> -> seq<'Key * int> |
将键生成函数应用于一个序列的每个元素,并返回一个序列,其中包含唯一键以及它们在原始序列中出现的次数。 |
delay : (unit -> seq<'T>) -> seq<'T> |
返回一个从某个序列的给定延迟规范中生成的序列。 |
distinct : seq<'T> -> seq<'T> |
根据针对条目的泛型哈希和相等性比较,返回一个不包含重复条目的序列。 如果某个元素在序列中出现多次,则后面出现的该元素将被丢弃。 |
distinctBy : ('T -> 'Key) -> seq<'T> -> seq<'T> |
根据针对由给定的键生成函数返回的键的泛型哈希和相等性比较,返回一个不包含重复条目的序列。 如果某个元素在序列中出现多次,则后面出现的该元素将被丢弃。 |
empty : seq<'T> |
创建一个空序列。 |
exists : ('T -> bool) -> seq<'T> -> bool |
测试序列中是否有任何元素满足给定谓词。 |
exists2 : ('T1 -> 'T2 -> bool) -> seq<'T1> -> seq<'T2> -> bool |
测试输入序列中是否有任何对应的元素对满足给定谓词。 |
filter : ('T -> bool) -> seq<'T> -> seq<'T> |
返回一个新集合,其中仅包含给定谓词为其返回 true 的集合的元素。 |
find : ('T -> bool) -> seq<'T> -> 'T |
返回给定函数为其返回 true 的第一个元素。 |
findIndex : ('T -> bool) -> seq<'T> -> int |
返回给定函数为其返回 true 的第一个元素的索引。 |
fold : ('State -> 'T -> 'State) -> 'State -> seq<'T> -> 'State |
将函数应用于集合的每个元素,并在整个计算过程中使用一个累加器参数。 如果输入函数为 f,并且元素为 i0...iN,,则此函数计算为 f (... (f s i0)...) iN。 |
forall : ('T -> bool) -> seq<'T> -> bool |
测试序列的所有元素是否都满足给定谓词。 |
forall2 : ('T1 -> 'T2 -> bool) -> seq<'T1> -> seq<'T2> -> bool |
测试从两个序列提取的所有元素对是否都满足给定谓词。 如果一个序列比另一个序列短,则会忽略较长序列的其余元素。 |
groupBy : ('T -> 'Key) -> seq<'T> -> seq<'Key * seq<'T>> |
将键生成函数应用于序列的每个元素,并生成唯一键序列。 每个唯一键也包含与此键相匹配的所有元素的序列。 |
head : seq<'T> -> 'T |
返回序列中的第一个元素。 |
init : int -> (int -> 'T) -> seq<'T> |
生成一个新序列,当进行迭代时,该序列将通过调用给定函数(次数不超过给定的计数)来返回连续的元素。 不会保存调用函数的结果,也就是说,将根据需要重新应用函数以重新生成元素。 将向函数传递所生成项的索引。 |
initInfinite : (int -> 'T) -> seq<'T> |
生成一个新序列,当进行迭代时,该序列将通过调用给定函数来返回连续的元素。 不会保存调用函数的结果,也就是说,将根据需要重新应用函数以重新生成元素。 将向函数传递所生成项的索引。 |
isEmpty : seq<'T> -> bool |
测试序列是否包含元素。 |
iter : ('T -> unit) -> seq<'T> -> unit |
将给定函数应用于集合的每个元素。 |
iter2 : ('T1 -> 'T2 -> unit) -> seq<'T1> -> seq<'T2> -> unit |
将给定函数同时应用于两个集合。 如果一个序列比另一个序列短,则会忽略较长序列的其余元素。 |
iteri : (int -> 'T -> unit) -> seq<'T> -> unit |
将给定函数应用于集合的每个元素。 传递到函数的整数指示元素的索引。 |
length : seq<'T> -> int |
返回序列的长度。 |
map : ('T -> 'U) -> seq<'T> -> seq<'U> |
创建一个新集合,其元素是将给定函数应用于集合的每个元素的结果。 由于在对从对象中检索的枚举器使用 MoveNext 方法时需要元素,因此将会应用给定函数。 |
map2 : ('T1 -> 'T2 -> 'U) -> seq<'T1> -> seq<'T2> -> seq<'U> |
创建一个新集合,其元素是对两个序列中的对应元素对应用给定函数的结果。 如果一个输入序列比另一个序列短,则会忽略较长序列的其余元素。 |
mapi : (int -> 'T -> 'U) -> seq<'T> -> seq<'U> |
创建一个新集合,其元素是将给定函数应用于集合的每个元素的结果。 传递到函数的整数索引指示所转换的元素的索引(从 0 开始)。 |
max : seq<'T> -> 'T |
使用 Operators.max 进行比较,返回序列的所有元素的最大值。 |
maxBy : ('T -> 'U) -> seq<'T> -> 'T |
使用 Operators.max 比较函数结果,返回序列的所有元素的最大值。 |
min : seq<'T> -> 'T |
通过使用 Operators.min 进行比较,返回最小序列的所有元素。 |
minBy : ('T -> 'U) -> seq<'T> -> 'T |
通过对函数结果运行 Operators.min 进行比较,返回序列的所有元素的最小值。 |
nth : int -> seq<'T> -> 'T |
计算集合中的第nth 个元素。 |
ofArray : 'T array -> seq<'T> |
以序列的形式查看给定数组。 |
ofList : 'T list -> seq<'T> |
以序列的形式查看给定列表。 |
pairwise : seq<'T> -> seq<'T * 'T> |
返回由输入序列及其前置序列中的每个元素组成的序列,但第一个元素例外,它只能作为第二个元素的前置元素返回。 |
pick : ('T -> 'U option) -> seq<'T> -> 'U |
将给定函数应用于连续的元素并返回第一个结果,该函数返回 Some 值。 |
readonly : seq<'T> -> seq<'T> |
创建委托给给定序列对象的新序列对象。 这样可确保无法通过类型转换来重新发现和改变原始序列。 例如,如果提供了数组,则返回的序列将返回数组的元素,但无法将所返回的序列对象强制转换为数组。 |
reduce : ('T -> 'T -> 'T) -> seq<'T> -> 'T |
将函数应用于序列的每个元素,并在整个计算过程中使用一个累加器参数。 首先,将函数应用于前两个元素。 然后将此结果随第三个元素等一起注入函数。 返回最终结果。 |
scan : ('State -> 'T -> 'State) -> 'State -> seq<'T> -> seq<'State> |
与 Seq.fold 类似,但它按需进行计算并返回中间结果和最终结果的序列。 |
singleton : 'T -> seq<'T> |
返回一个仅生成一个项的序列。 |
skip : int -> seq<'T> -> seq<'T> |
返回一个序列,该序列跳过基础序列的元素的指定数量,然后生成序列的其余元素。 |
skipWhile : ('T -> bool) -> seq<'T> -> seq<'T> |
返回一个序列,在进行循环访问时,如果给定谓词返回 true,则跳过基础序列的元素,生成由其余元素组成的序列。 |
sort : seq<'T> -> seq<'T> |
生成一个按键排序的序列。 |
sortBy : ('T -> 'Key) -> seq<'T> -> seq<'T> |
将键生成函数应用于序列的每个元素,并产生一个按键排序的序列。 使用泛型比较对密匙进行比较,如 Operators.compare 实现的那样。 |
sum : seq<^T> -> ^T |
返回序列中元素的总和。 |
返回通过将函数应用于序列的每个元素而生成的结果的总和。 |
|
take : int -> seq<'T> -> seq<'T> |
返回多达指定计数的第一序列元素。 |
takeWhile : ('T -> bool) -> seq<'T> -> seq<'T> |
返回一个序列,在进行迭代时,该序列会在给定谓词返回 true 的情况下生成基础序列的元素,然后不再返回任何元素。 |
toArray : seq<'T> -> 'T [] |
从给定集合中创建数组。 |
toList : seq<'T> -> 'T list |
根据给定的集合创建列表。 |
truncate : int -> seq<'T> -> seq<'T> |
如果枚举的返回不超过指定的元素数量时,则会返回序列。 |
tryFind : ('T -> bool) -> seq<'T> -> 'T option |
返回第一个元素,给定函数针对该元素返回 true 或 None(如果没有此类元素存在)。 |
tryFindIndex : ('T -> bool) -> seq<'T> -> int option |
返回满足给定谓词的序列中的第一个元素的索引,或返回 None(如果没有此类元素存在)。 |
tryPick : ('T -> 'U option) -> seq<'T> -> 'U option |
将给定函数应用于连续的元素并返回第一个结果,该函数返回 Some 值。 |
unfold : ('State -> 'T * 'State option) -> 'State -> seq<'T> |
返回一个包含由给定计算生成的元素的序列。 |
windowed : int -> seq<'T> -> seq<'T []> |
返回一个序列,用于生成容纳从输入序列中提取的元素的滑动窗口。 每个窗口都以新数组的形式返回。 |
zip : seq<'T1> -> seq<'T2> -> seq<'T1 * 'T2> |
将两个序列组合为一个由成对值构成的列表。 两个序列的长度不必相等:如果一个序列已用尽,则会忽略另一个序列中的任何其余元素。 |
zip3 : seq<'T1> -> seq<'T2> -> seq<'T3> -> seq<'T1 * 'T2 * 'T3> |
将三个序列组合为三个为一组的列表。 各序列的长度不必相等:如果一个序列已用尽,则会忽略其他两个序列中的任何其余元素。 |
平台
Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2
版本信息
F# 运行时
受以下版本支持:2.0、4.0
Silverlight
受以下版本支持:3