I'm trying to retrieve a list of unique values from a particular field in a layer using ArcObjects.
I was using the IDataStatistics.UniqueValues, but it causes the results to be corrupted as soon as the function is exited (in ArcMap 10.2+). I think it's related to some longstanding issues with IDataStatistics (Issues with ArcObjects and ArcGIS 10.1 SP1 IDataStatistics as an example).
I tried using the DISTINCT prefix on the IQueryFilterDefinition2, per the end of the discussion on the last thread, but couldn't get it to work on a shapefile -- It did work on the same data in a File Geodatabase. What are the limitations of IQueryFilterDefinition2? Have any other suggestions to get a list of unique values quickly?
Some Caveats:
- It's for commercial software and needs to support ArcMap 10.0-10.3.X
- We work with all flavors of GeoFeatureLayers and need to support shp, pgdb, fgdb, sde, etc.
- This function needs to run very quickly, because it's called every time the map refreshes (invalidates) and may be retrieving unique values from one column, from multiple layers with a large number of features each