// Create a queryFilter with where clause = to the OID of the selected feature in the map
queryFilter = new QueryFilter();
// ex: OBJECTID = 10
String strWhereClause = fc.getOIDFieldName() + " = " + featLayer.getSelectionSet().getIDs().next();
queryFilter.setWhereClause(strWhereClause);
// Use IFeatureClass.Update to populate IFeatureCursor.
IFeatureCursor updateCursor = fc.IFeatureClass_update(queryFilter, false);
IFeature feature = null;
while ((feature = updateCursor.nextFeature()) != null) {
updateCursor.deleteFeature();
}
// If the cursor is no longer needed, release it.
Cleaner.release(updateCursor);
IEnumIDs oids = (IEnumIDs) featLayer.getSelectionSet().getIDs();
IEnumIDs oids2 = (IEnumIDs) featLayer.getSelectionSet().getIDs();
while((oids.next()) != -1){
fc.getFeature(oids2.next()).delete();
oids.reset();
}
GeoProcessor gp = new GeoProcessor();
DeleteFeatures delete = new DeleteFeatures();
delete.setInFeatures(featLayer);
gp.execute(delete, null);
// Get a cursor on selected features
IFeatureCursor cursor = null;
featLayer.getSelectionSet().search(null, false, cursor);
// Delete all features in the cursor
IFeature feature = null;
while ((feature = cursor.nextFeature()) != null) {
cursor.deleteFeature(); // Or maybe try feature.delete()
}
fc = (IFeatureClass) featLayer.getFeatureClass();
// Create a queryFilter with where clause
queryFilter = new QueryFilter();
// Create two enums. One to iterate and one to get the IDs without a complex for statement
IEnumIDs oids = (IEnumIDs) featLayer.getSelectionSet().getIDs();
IEnumIDs oids2 = (IEnumIDs) featLayer.getSelectionSet().getIDs();
int count = featLayer.getSelectionSet().getCount();
int x = 0;
// Build a long WhereClause from all of the OBJECTIDs concatenated together.
StringBuilder sb = new StringBuilder();
sb.append(fc.getOIDFieldName() + " = ");
while((oids.next()) != -1){
if(x < ((count) - 1)){
sb.append(oids2.next());
sb.append(" OR " + fc.getOIDFieldName() + " = ");
x++;
}
else {
sb.append(oids2.next());
}
}
queryFilter.setWhereClause(sb.toString());
// Use IFeatureClass.Update to populate IFeatureCursor.
IFeatureCursor updateCursor = fc.IFeatureClass_update(queryFilter, false);
IFeature feature = null;
while ((feature = updateCursor.nextFeature()) != null) {
updateCursor.deleteFeature();
}
// Clear the selection set, because deleting this way doesn't notify the table or the TOC to udpate.
featLayer.clear();
// optionally call updateContents on map document
// If the cursor is no longer needed, release it.
Cleaner.release(updateCursor);
// Get a cursor on selected features
IFeatureCursor cursor = null;
featLayer.getSelectionSet().search(null, false, cursor);
// Delete all features in the cursor
IFeature feature = null;
while ((feature = cursor.nextFeature()) != null) {
cursor.deleteFeature(); // Or maybe try feature.delete()
}
// Clear the selection set, because deleting this way doesn't notify the table or the TOC to udpate.
featLayer.clear();
// optionally call updateContents on map document
// If the cursor is no longer needed, release it.
Cleaner.release(cursor);