var greatLakes = map.GetLayersAsFlattenedList()
.OfType<FeatureLayer>().First(l => l.Name == "Great Lakes");
var usa_states = map.GetLayersAsFlattenedList()
.OfType<FeatureLayer>().First(l => l.Name == "US_States");
QueuedTask.Run(() =>
{
//name must be unique
var def_query = new DefinitionQuery("GreatLakes",
"NAME in ('Huron','Michigan','Erie')");
//create a filter geometry - in this example we will use the outline geometry
//of all visible features from a us states layer...the filter geometry will be
//intersected with the layer feature geometry when added to the def query
var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.Visible);
//other options...
//var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.All);
//var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.Selected);
//Geometry must have a valid SR and be point, multi-point, line, or poly
if (def_query.CanSetFilterGeometry(filter_geom))
{
def_query.SetFilterGeometry(filter_geom);
}
//Apply the def query
greatLakes.InsertDefinitionQuery(def_query);
//Set it active
greatLakes.SetActiveDefinitionQuery(def_query.Name);
//or....also - set it active when it is inserted
//greatLakes.InsertDefinitionQuery(def_query, true);
});