ArcEngine——獲取唯一值

private List<string> GetUniqueValue(IFeatureLayer layer) {
    List<string> list = null;
    try {
        IFields pFields = layer.FeatureClass.Fields;
        int indexOfDLMC = pFields.FindField("DLMC");
        IField pField = pFields.get_Field(indexOfDLMC);
        esriFieldType type = pField.Type;
        ICursor pCursor = null;
        IQueryFilter pQueryFilter = new QueryFilterClass();
        pQueryFilter.WhereClause = WHERE_CAUSE;
        IQueryFilterDefinition pQueryFilterDefinition = pQueryFilter as IQueryFilterDefinition;
        pQueryFilterDefinition.PostfixClause = " order by DLBM";
        pCursor = layer.FeatureClass.Search(pQueryFilter, false) as ICursor;
        IDataStatistics pDataStaticstics = new DataStatisticsClass();
        pDataStaticstics.Cursor = pCursor;
        pDataStaticstics.Field = pField.Name;
        System.Collections.IEnumerator pEnumerator = pDataStaticstics.UniqueValues;
        pEnumerator.Reset();
        list = new List<string>();
        while (pEnumerator.MoveNext()) {
            list.Add(pEnumerator.Current.ToString());
        }
    } catch (Exception) {

        throw;
    }
    return list;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章