FAQ
ArcObjects でフィールド値の個別値リストを取得する方法

ナレッジ番号:5540 | 登録日:2023/07/27 | 更新日:2024/11/21

概要

テーブルやフィーチャクラスがもつフィールド値の個別値のリストを取得するには、IDataStatistics::UniqueValues で行います。 リストは列挙型で返るため、最初に Reset メソッドで初期化してから使用するようにします。 以下のサンプル コードでは、"MOJI" フィールドに格納された個別値とその個数を調べています。

Image 

Image

サンプル コード

 ArcMap.Application.CurrentTool = null;
 IFeatureLayer pFLayer;
 IDataStatistics pData = new DataStatisticsClass();
 ICursor pCursor;
 pFLayer = (IFeatureLayer)ArcMap.Document.FocusMap.get_Layer(0);
 pCursor = (ICursor)pFLayer.Search(null, false);
 pData.Field = "MOJI";

 pData.Cursor = pCursor;
 System.Collections.IEnumerator pEnumVar;
 pEnumVar = pData.UniqueValues;
 pEnumVar.Reset();

 System.Diagnostics.Debug.Print("UniqueValueCount - " + pData.UniqueValueCount.ToString());
 pEnumVar.MoveNext();
 while (pEnumVar.Current != null)
     {
            System.Diagnostics.Debug.Print("value - " + pEnumVar.Current.ToString());
            pEnumVar.MoveNext();
      }
 Dim pFLayer As IFeatureLayer
 Dim pData As IDataStatistics
 Dim pCursor As ICursor

 pFLayer = My.ArcMap.Document.FocusMap.Layer(0)
 pCursor = pFLayer.Search(Nothing, False)
 pData = New DataStatisticsClass

 pData.Field = "MOJI"
 pData.Cursor = pCursor

 Dim pEnumVar As System.Collections.IEnumerator
 pEnumVar = pData.UniqueValues
 pEnumVar.Reset()
 Debug.Print("UniqueValueCount - " & pData.UniqueValueCount.ToString())

 pEnumVar.MoveNext()
 Do Until pEnumVar.Current Is Nothing
   Debug.Print("value - " & pEnumVar.Current.ToString())
   pEnumVar.MoveNext()
 Loop

メタデータ

機能

種類

製品