共用方式為


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>

建立空序列。

exactlyOne: seq<'T> -> '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

將指定的函式套用至集合的每一個項目。傳遞給這個函式的整數表示項目的索引。

last : seq<'T> -> 'T

傳回序列的最後一個項目。

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

計算集合中的第 n 個項目。

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

傳回序列中的項目總和。

sumBy

傳回將函式套用至序列的每個項目所產生之結果的總和。

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>

傳回序列,這個序列包含指定的計算所產生的項目。

其中: ('T -> bool) -> seq<'T> -> seq<'T>

傳回新集合,其中僅包含原本集合中讓指定的述詞傳回 true 的集合項目。Seq.filter之同義資料表。

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 8 中, Windows 7, Windows Server 2012 上, Windows Server 2008 R2

版本資訊

F# 核心程式庫版本

支援版本:2.0, 4.0,可攜式執行檔 (PE)。

請參閱

參考

Microsoft.FSharp.Collections 命名空間 (F#)

序列 (F#)

Collections.seq<'T> 型別縮寫 (F#)