AE开发中,遍历大量数据时,调用gdb或mdb中的某个图层时,首先保证图层存在,下面是判断所需图层是否存在,获取要素类。
FileGDBWorkspaceFactory fac = new FileGDBWorkspaceFactory();
IWorkspace pWorkspace = fac.OpenFromFile(gdbPath + "\\BASE.gdb", 0);
IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace)pWorkspace;
IFeatureDataset pFeatureDataSet = pFeatureWorkspace.OpenFeatureDataset("DataSet");
IFeatureClassContainer pFeatureclassContainer = (IFeatureClassContainer)pFeatureDataSet;
IEnumFeatureClass pEnumFeatureClass = (IEnumFeatureClass)pFeatureclassContainer.Classes;
IFeatureClass pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
while (pFeatureClass != null)//在每一个数据集中遍历数据层IFeatureClass
{
if (!pFeatureClass.AliasName.Equals("XZTC"))
{
//获取要素类,break
break;
}
pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
}
主要用到了下面转换,并进行遍历获取
IFeatureClassContainer pFeatureclassContainer = (IFeatureClassContainer)pFeatureDataSet;