Public Property GroupBy As IReadOnlyList(Of Field)
public IReadOnlyList<Field> GroupBy {get; set;}
GroupBy during statistics computation.Public Property GroupBy As IReadOnlyList(Of Field)
public IReadOnlyList<Field> GroupBy {get; set;}
| Exception | Description |
|---|---|
| System.ArgumentNullException | The Field input at a specific index in theGroupBy list is null. |
GroupBy will have no effect on the outcome of the computation.{
// Must be called within QueuedTask.Run
// Calculate the Sum and Average of the Population_1990 and Population_2000 fields, grouped and ordered by Region
void CalculateStatistics(FeatureClass countryFeatureClass)
{
using (FeatureClassDefinition featureClassDefinition = countryFeatureClass.GetDefinition())
{
// Get fields
Field regionField = featureClassDefinition.GetFields()
.First(x => x.Name.Equals("Region"));
Field pop1990Field = featureClassDefinition.GetFields()
.First(x => x.Name.Equals("Population_1990"));
Field pop2000Field = featureClassDefinition.GetFields()
.First(x => x.Name.Equals("Population_2000"));
// Create StatisticsDescriptions
StatisticsDescription pop1990StatisticsDescription = new StatisticsDescription(pop1990Field,
new List<StatisticsFunction>()
{
StatisticsFunction.Sum,
StatisticsFunction.Average
});
StatisticsDescription pop2000StatisticsDescription = new StatisticsDescription(pop2000Field,
new List<StatisticsFunction>()
{
StatisticsFunction.Sum,
StatisticsFunction.Average
});
// Create TableStatisticsDescription
TableStatisticsDescription tableStatisticsDescription = new TableStatisticsDescription(
new List<StatisticsDescription>()
{
pop1990StatisticsDescription, pop2000StatisticsDescription
});
tableStatisticsDescription.GroupBy = new List<Field>() { regionField };
tableStatisticsDescription.OrderBy = new List<SortDescription>() { new SortDescription(regionField) };
// Calculate Statistics
IReadOnlyList<TableStatisticsResult> tableStatisticsResults =
countryFeatureClass.CalculateStatistics(tableStatisticsDescription);
foreach (TableStatisticsResult tableStatisticsResult in tableStatisticsResults)
{
// Get the Region name
// If multiple fields had been passed into TableStatisticsDescription.GroupBy, there would be multiple values in TableStatisticsResult.GroupBy
string regionName = tableStatisticsResult.GroupBy.First().Value.ToString();
// Get the statistics results for the Population_1990 field
StatisticsResult pop1990Statistics = tableStatisticsResult.StatisticsResults[0];
double population1990Sum = pop1990Statistics.Sum;
double population1990Average = pop1990Statistics.Average;
// Get the statistics results for the Population_2000 field
StatisticsResult pop2000Statistics = tableStatisticsResult.StatisticsResults[1];
double population2000Sum = pop2000Statistics.Sum;
double population2000Average = pop2000Statistics.Average;
// Do something with the results here...
}
}
}
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)