转自原文 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);
}