轉自原文 ArcGIS Engine中刪除要素的幾種方法總結
/// <summary> /// 通過IFeature.Delete方法刪除要素 /// </summary> /// <param name="pFeatureclass">要素類</param> /// <param name="strWhereClause">查詢條件</param> public static void DeleteFeatureByIFeature(IFeatureClass pFeatureclass, string strWhereClause) { IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = strWhereClause; IFeatureCursor pFeatureCursor = pFeatureclass.Search(pQueryFilter, false); IFeature pFeature = pFeatureCursor.NextFeature(); while (pFeature != null) { pFeature.Delete(); pFeature = pFeatureCursor.NextFeature(); } } /// <summary> /// 通過IFeatureCursor.DeleteFeature方法刪除要素 /// </summary> /// <param name="pFeatureclass">要素類</param> /// <param name="strWhereClause">查詢條件</param> public static void DeleteFeatureByIFeatureCursor(IFeatureClass pFeatureclass, string strWhereClause) { IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = strWhereClause; IFeatureCursor pFeatureCursor = pFeatureclass.Update(pQueryFilter, false); IFeature pFeature = pFeatureCursor.NextFeature(); while (pFeature != null) { pFeatureCursor.DeleteFeature(); pFeature = pFeatureCursor.NextFeature(); } } /// <summary> /// 通過ITable.DeleteSearchedRows方法刪除要素 /// </summary> /// <param name="pFeatureclass">要素類</param> /// <param name="strWhereClause">查詢條件</param> public static void DeleteFeatureByITable(IFeatureClass pFeatureclass, string strWhereClause) { IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = strWhereClause; ITable pTable = pFeatureclass as ITable; pTable.DeleteSearchedRows(pQueryFilter); }