Функция Seq.countBy<'T,'Key> (F#)
Применяет функцию генерации ключа к каждому элемента последовательности и возвращает последовательность полученных уникальных ключей и количество их экземпляров в исходной последовательности.
Пространство имен/путь к модулю: Microsoft.FSharp.Collections.Seq
Сборка: FSharp.Core (в FSharp.Core.dll)
// Signature: Seq.countBy : ('T -> 'Key) -> seq<'T> -> seq<'Key * int> (requires equality) // Usage: Seq.countBy projection source
Параметры
projection
Тип: 'T -> 'KeyФункция, трансформирующая каждый из элементов входной последовательности в ключ, который будет сравниваться с другими.
source
Тип: seq<'T>Входная последовательность
Исключения
Исключение |
Условие |
---|---|
Выдается, если входная последовательность пуста. |
Возвращаемое значение
Последовательность уникальных ключей и количество их экземпляров в исходной последовательности.
Заметки
Обратите внимание, что эта функция возвращает последовательность, проходящую всю исходную последовательность, после ее итерации. Это значит, что эту функцию не следует использовать для работы с большими или бесконечными последовательностями. Функция не предполагает заказ исходной последовательности.
В компилированных сборках эта функция называется CountBy. Используйте это имя, если обращаетесь к этой функции с помощью другого языка, кроме F#, или отражения.
Пример
В следующем примере показано, как использовать Seq.countBy для определения количества элементов (четных или нечетных) в последовательности.
let mySeq1 = seq { 1.. 100 }
let printSeq seq1 = Seq.iter (printf "%A ") seq1; printfn ""
let seqResult = Seq.countBy (fun elem ->
if (elem % 2 = 0) then 0 else 1) mySeq1
printSeq seqResult
Платформы
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Сведения о версии
Версии библиотеки ядра F#
Поддерживается в версиях 2.0, 4.0, Portable