Arcengine获取工作空间下所有要素类
/// <summary> /// 获取工作空间的要素类 /// </summary> /// <param name="workspace"></param> /// <param name="workspaceType"></param> /// <returns></returns> public List<string> GetFeatureClassByWorkspace(IWorkspace workspace) { List<string> listFeaClass = new List<string>(); try { //遍历工作空间下的featureclass IFeatureWorkspace pFeatureWorkspace = workspace as IFeatureWorkspace; IEnumDataset pEnumDatasets = workspace.get_Datasets(esriDatasetType.esriDTAny) as IEnumDataset; IDataset pDataset = pEnumDatasets.Next(); while (pDataset != null) { if (pDataset.Type == esriDatasetType.esriDTFeatureClass) { //string aliasName = pFeatureWorkspace.OpenFeatureClass(pDataset.Name).AliasName; listFeaClass.Add(pDataset.Name); } else if (pDataset.Type == esriDatasetType.esriDTFeatureDataset) { IEnumDataset pESubDataset = pDataset.Subsets; IDataset pSubDataset = pESubDataset.Next(); while (pSubDataset != null) { listFeaClass.Add(pSubDataset.Name); pSubDataset = pESubDataset.Next(); } } pDataset = pEnumDatasets.Next(); } } catch (Exception ex) { return null; } return listFeaClass; }