Freigeben über


Seq.iter<'T>-Funktion (F#)

Wendet die angegebene Funktion auf jedes Element der Auflistung an.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
Seq.iter : ('T -> unit) -> seq<'T> -> unit

// Usage:
Seq.iter action source

Parameter

  • action
    Typ: 'T ->unit

    Eine Funktion, die auf jedes Element der Sequenz angewendet wird.

  • source
    Typ: seq<'T>

    Die Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn die Eingabesequenz NULL ist.

Hinweise

Der Name dieser Funktion in kompilierten Assemblys lautet Iterate.Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Im folgenden Beispiel wird die Verwendung von Seq.iter veranschaulicht.

printf "Seq.iter: "
Seq.iter (fun (a,b) -> printf "(%d, %d) " a b) (seq { for i in 1..5 -> (i, i*i) })
  

Das folgende Beispiel veranschaulicht die Verwendung von Seq.iter zur Verwendung mit CSV-Dateien (durch Trennzeichen getrennte Werte).

// Write a test file
System.IO.File.WriteAllLines(@"test.csv", [| "Desmond, Barrow, Market Place, 2"; 
                                             "Molly, Singer, Band, 12" |]);

/// This function builds an IEnumerable<string list> object that enumerates the CSV-split
/// lines of the given file on-demand 
let CSVFileEnumerator(fileName) = 

    // The function is implemented using a sequence expression
    seq { use sr = System.IO.File.OpenText(fileName)
          while not sr.EndOfStream do
             let line = sr.ReadLine() 
             let words = line.Split [|',';' ';'\t'|] 
             yield words }

// Now test this out on our test file, iterating the entire file
let test = CSVFileEnumerator(@"test.csv")  
printfn "-------Enumeration 1------";
test |> Seq.iter (string >> printfn "line %s");
// Now do it again, this time determining the numer of entries on each line.
// Note how the file is read from the start again, since each enumeration is 
// independent.
printfn "-------Enumeration 2------";
test |> Seq.iter (Array.length >> printfn "line has %d entries");
// Now do it again, this time determining the numer of entries on each line.
// Note how the file is read from the start again, since each enumeration is 
// independent.
printfn "-------Enumeration 3------";
test |> Seq.iter (Array.map (fun s -> s.Length) >> printfn "lengths of entries: %A")
  

Plattformen

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)