From:http://blog.csdn.net/mytudousi/article/details/31383079
ArcEngine中有许多需要数据统计的地方,例如在矢量数据唯一值渲染的时候,需要统计出该矢量数据中包含哪些惟一值,如果我们用代码读出来去遍历的话速度是很慢的,这时候就可以使用ArcEngine提供的DataStatistics类,通过该类可以很快的统计出我们要渲染的矢量数据指定字段包含的唯一值有哪些。
DataSratistics类的成员定义如下:
- public class DataStatisticsClass : DataStatistics, IDataStatistics
- {
- public DataStatisticsClass();
- public virtual bool Cancelled { get; }
- public virtual bool Continue { get; }
- //要统计的 游标,该游标就是该类要统计的目标
- public virtual ICursor Cursor { set; }
- //要统计的字段名称
- public virtual string Field { get; set; }
- //采样率
- public virtual int SampleRate { get; set; }
- //是否是简单统计
- public virtual bool SimpleStats { get; set; }
- //得到统计的结果
- public virtual IStatisticsResults Statistics { get; }
- //唯一之的个数
- public virtual int UniqueValueCount { get; }
- //惟一值 列表
- public virtual IEnumerator UniqueValues { get; }
- }
例如我们要统计一个矢量数据中包含的惟一值,代码如下:
- DataStatisticsClass myDataStatistics = new DataStatisticsClass();
- ICursor myCursor = this._FeatureClass.Search(null, false) as ICursor;
- myDataStatistics.Cursor = myCursor;
- myDataStatistics.Field = "字段名称";
- IEnumerator myEnumerator = myDataStatistics.UniqueValues;
- List<string> myValueList = new List<string>();
- myEnumerator.Reset();
- while (myEnumerator.MoveNext())
- {
- myValueList.Add(myEnumerator.Current.ToString ());
- }
- public interface IStatisticsResults
- {
- //值总数
- int Count { get; }
- //最大值
- double Maximum { get; }
- //算术平均值
- double Mean { get; }
- //最小值
- double Minimum { get; }
- //标准差
- double StandardDeviation { get; }
- //和
- double Sum { get; }
- }