Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / XmlAggregates.cs / 1305376 / XmlAggregates.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Xml; using System.Diagnostics; using System.ComponentModel; namespace System.Xml.Xsl.Runtime { ////// Computes aggregates over a sequence of Int32 values. /// [EditorBrowsable(EditorBrowsableState.Never)] public struct Int32Aggregator { private int result; private int cnt; public void Create() { this.cnt = 0; } public void Sum(int value) { if (this.cnt == 0) { this.result = value; this.cnt = 1; } else { this.result += value; } } public void Average(int value) { if (this.cnt == 0) this.result = value; else this.result += value; this.cnt++; } public void Minimum(int value) { if (this.cnt == 0 || value < this.result) this.result = value; this.cnt = 1; } public void Maximum(int value) { if (this.cnt == 0 || value > this.result) this.result = value; this.cnt = 1; } public int SumResult { get { return this.result; } } public int AverageResult { get { return this.result / this.cnt; } } public int MinimumResult { get { return this.result; } } public int MaximumResult { get { return this.result; } } public bool IsEmpty { get { return this.cnt == 0; } } } ////// Computes aggregates over a sequence of Int64 values. /// [EditorBrowsable(EditorBrowsableState.Never)] public struct Int64Aggregator { private long result; private int cnt; public void Create() { this.cnt = 0; } public void Sum(long value) { if (this.cnt == 0) { this.result = value; this.cnt = 1; } else { this.result += value; } } public void Average(long value) { if (this.cnt == 0) this.result = value; else this.result += value; this.cnt++; } public void Minimum(long value) { if (this.cnt == 0 || value < this.result) this.result = value; this.cnt = 1; } public void Maximum(long value) { if (this.cnt == 0 || value > this.result) this.result = value; this.cnt = 1; } public long SumResult { get { return this.result; } } public long AverageResult { get { return this.result / (long) this.cnt; } } public long MinimumResult { get { return this.result; } } public long MaximumResult { get { return this.result; } } public bool IsEmpty { get { return this.cnt == 0; } } } ////// Computes aggregates over a sequence of Decimal values. /// [EditorBrowsable(EditorBrowsableState.Never)] public struct DecimalAggregator { private decimal result; private int cnt; public void Create() { this.cnt = 0; } public void Sum(decimal value) { if (this.cnt == 0) { this.result = value; this.cnt = 1; } else { this.result += value; } } public void Average(decimal value) { if (this.cnt == 0) this.result = value; else this.result += value; this.cnt++; } public void Minimum(decimal value) { if (this.cnt == 0 || value < this.result) this.result = value; this.cnt = 1; } public void Maximum(decimal value) { if (this.cnt == 0 || value > this.result) this.result = value; this.cnt = 1; } public decimal SumResult { get { return this.result; } } public decimal AverageResult { get { return this.result / (decimal) this.cnt; } } public decimal MinimumResult { get { return this.result; } } public decimal MaximumResult { get { return this.result; } } public bool IsEmpty { get { return this.cnt == 0; } } } ////// Computes aggregates over a sequence of Double values. /// [EditorBrowsable(EditorBrowsableState.Never)] public struct DoubleAggregator { private double result; private int cnt; public void Create() { this.cnt = 0; } public void Sum(double value) { if (this.cnt == 0) { this.result = value; this.cnt = 1; } else { this.result += value; } } public void Average(double value) { if (this.cnt == 0) this.result = value; else this.result += value; this.cnt++; } public void Minimum(double value) { if (this.cnt == 0 || value < this.result || double.IsNaN(value)) this.result = value; this.cnt = 1; } public void Maximum(double value) { if (this.cnt == 0 || value > this.result || double.IsNaN(value)) this.result = value; this.cnt = 1; } public double SumResult { get { return this.result; } } public double AverageResult { get { return this.result / (double) this.cnt; } } public double MinimumResult { get { return this.result; } } public double MaximumResult { get { return this.result; } } public bool IsEmpty { get { return this.cnt == 0; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UidManager.cs
- NamespaceQuery.cs
- SqlClientPermission.cs
- HelpInfo.cs
- Byte.cs
- TrackingStringDictionary.cs
- PatternMatcher.cs
- TypeLoader.cs
- IsolatedStorageFileStream.cs
- FileNotFoundException.cs
- DeploymentExceptionMapper.cs
- Point3D.cs
- figurelength.cs
- BinaryQueryOperator.cs
- ControlBuilderAttribute.cs
- MemberPath.cs
- AccessorTable.cs
- DelayedRegex.cs
- IsolatedStoragePermission.cs
- ImageMapEventArgs.cs
- SoapCommonClasses.cs
- XDRSchema.cs
- ToolStripPanelSelectionGlyph.cs
- ComPlusServiceHost.cs
- DashStyle.cs
- SatelliteContractVersionAttribute.cs
- Hyperlink.cs
- EntityProviderFactory.cs
- bidPrivateBase.cs
- WebUtil.cs
- GridEntry.cs
- XPathNavigatorReader.cs
- HtmlFormWrapper.cs
- ElementUtil.cs
- InputScope.cs
- serverconfig.cs
- DateTimeOffset.cs
- PrintPreviewGraphics.cs
- ObjectTag.cs
- HtmlFormParameterWriter.cs
- XmlDeclaration.cs
- ValidatingReaderNodeData.cs
- PolicyManager.cs
- LogReserveAndAppendState.cs
- StaticResourceExtension.cs
- ComponentEvent.cs
- ConnectionInterfaceCollection.cs
- MessageBox.cs
- WorkflowInstanceAbortedRecord.cs
- LeftCellWrapper.cs
- _RequestCacheProtocol.cs
- XmlSchemaSet.cs
- EntityConnectionStringBuilder.cs
- OLEDB_Enum.cs
- HelpInfo.cs
- DataPagerFieldItem.cs
- XmlSchemaSimpleContentRestriction.cs
- PolicyLevel.cs
- ListSortDescription.cs
- TagPrefixInfo.cs
- OperationResponse.cs
- DataControlPagerLinkButton.cs
- ToolStripButton.cs
- CompatibleIComparer.cs
- SoapSchemaExporter.cs
- CodeExpressionRuleDeclaration.cs
- WpfWebRequestHelper.cs
- SynchronizedCollection.cs
- PageThemeCodeDomTreeGenerator.cs
- EventLogPermissionEntryCollection.cs
- SiteMembershipCondition.cs
- Stackframe.cs
- DbDataAdapter.cs
- XmlCompatibilityReader.cs
- PropertyGridCommands.cs
- SurrogateSelector.cs
- MailWriter.cs
- WpfKnownType.cs
- PlatformCulture.cs
- TypeListConverter.cs
- CodeLabeledStatement.cs
- MruCache.cs
- TemplateNodeContextMenu.cs
- KnownTypes.cs
- EntitySetDataBindingList.cs
- CqlParserHelpers.cs
- EntitySqlException.cs
- BlockUIContainer.cs
- SafeCryptHandles.cs
- DoubleStorage.cs
- DrawingImage.cs
- VerificationAttribute.cs
- PagerSettings.cs
- AutomationEventArgs.cs
- ShaderRenderModeValidation.cs
- XmlSignificantWhitespace.cs
- DecoderExceptionFallback.cs
- DbConnectionPoolGroupProviderInfo.cs
- PreviousTrackingServiceAttribute.cs
- FormsAuthenticationUserCollection.cs