转自原文 ArcGIS Engine检索要素集、要素类和要素
- /// <summary>
- /// 获取所有要素集
- /// </summary>
- /// <param name="workspace">工作空间对象</param>
- /// <returns>要素集列表</returns>
- public static List<IFeatureDataset> GetAllFeatureClass(IWorkspace workspace)
- {
- IEnumDataset dataset = workspace.get_Datasets(esriDatasetType.esriDTFeatureDataset);
- IFeatureDataset featureDataset = dataset.Next() as IFeatureDataset;
- List<IFeatureDataset> featureDatasetList = new List<IFeatureDataset>();
- while (featureDataset != null)
- {
- featureDatasetList.Add(featureDataset);
- featureDataset = dataset.Next() as IFeatureDataset;
- }
- return featureDatasetList;
- }
- /// <summary>
- /// 获取所有要素类
- /// </summary>
- /// <param name="featureDataset">要素集</param>
- /// <returns>要素类列表</returns>
- public static List<IFeatureClass> GetAllFeatureClass(IFeatureDataset featureDataset)
- {
- IFeatureClassContainer featureClassContainer = (IFeatureClassContainer)featureDataset;
- IEnumFeatureClass enumFeatureClass = featureClassContainer.Classes;
- IFeatureClass featureClass = enumFeatureClass.Next();
- List<IFeatureClass> featureClassList = new List<IFeatureClass>();
- while (featureClass != null)
- {
- featureClassList.Add(featureClass);
- featureClass = enumFeatureClass.Next();
- }
- return featureClassList;
- }
- /// <summary>
- /// 获取所有要素
- /// </summary>
- /// <param name="featureClass">要素类</param>
- /// <returns>要素列表</returns>
- public static List<IFeature> GetAllFeatureClass(IFeatureClass featureClass)
- {
- List<IFeature> featureList = new List<IFeature>();
- IFeatureCursor featureCursor = featureClass.Search(null, false);
- IFeature feature = featureCursor.NextFeature();
- while (feature != null)
- {
- featureList.Add(feature);
- feature = featureCursor.NextFeature();
- }
- return featureList;
- }