F# and ArcObjects, Part 2
- by Marko Apfel
After accessing one feature now iterating through all features of a feature class: open System;;
#I "C:\Program Files\ArcGIS\DotNet";;
#r "ESRI.ArcGIS.System.dll";;
#r "ESRI.ArcGIS.DataSourcesGDB.dll";;
#r "ESRI.ArcGIS.Geodatabase.dll";;
open ESRI.ArcGIS.esriSystem;;
open ESRI.ArcGIS.DataSourcesGDB;;
open ESRI.ArcGIS.Geodatabase;;
let aoInitialize = new AoInitializeClass();;
let status = aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);;
let workspacefactory = new SdeWorkspaceFactoryClass();;
let connection = "SERVER=okul;DATABASE=p;VERSION=sde.default;INSTANCE=sde:sqlserver:okul;USER=s;PASSWORD=g";;
let workspace = workspacefactory.OpenFromString(connection, 0);;
let featureWorkspace = (box workspace) :?> IFeatureWorkspace;;
let featureClass = featureWorkspace.OpenFeatureClass("Praxair.SFG.BP_L_ROHR");;
let queryFilter = new QueryFilterClass();;
let featureCursor = featureClass.Search(queryFilter, true);;
let featureCursorSeq (featureCursor : IFeatureCursor) =
let actualFeature = ref (featureCursor.NextFeature())
seq {
while (!actualFeature) <> null do
yield actualFeature
do actualFeature := featureCursor.NextFeature()
};;
featureCursorSeq featureCursor
|> Seq.iter (fun feature -> Console.WriteLine ((!feature).OID));;