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
- Accessors.cs
- XmlParserContext.cs
- XPathAncestorIterator.cs
- Pts.cs
- FileResponseElement.cs
- EditorZoneBase.cs
- Contracts.cs
- HostProtectionException.cs
- AddInToken.cs
- HostProtectionException.cs
- DataGridViewAdvancedBorderStyle.cs
- CompiledQueryCacheEntry.cs
- ConnectionStringsExpressionBuilder.cs
- DataServiceQuery.cs
- Int16KeyFrameCollection.cs
- CopyNodeSetAction.cs
- SessionEndedEventArgs.cs
- RemoteEndpointMessageProperty.cs
- HTMLTagNameToTypeMapper.cs
- LogWriteRestartAreaAsyncResult.cs
- SqlProcedureAttribute.cs
- AbstractSvcMapFileLoader.cs
- WindowsScrollBarBits.cs
- CheckBoxFlatAdapter.cs
- Rotation3DAnimation.cs
- IPCCacheManager.cs
- MDIWindowDialog.cs
- AnnotationResourceChangedEventArgs.cs
- RadioButtonList.cs
- ExceptionValidationRule.cs
- StringUtil.cs
- TargetPerspective.cs
- DesignerForm.cs
- MembershipValidatePasswordEventArgs.cs
- HttpBindingExtension.cs
- EncryptedData.cs
- Geometry.cs
- PrefixQName.cs
- SoapTypeAttribute.cs
- XmlCountingReader.cs
- CodeObject.cs
- AssemblyCollection.cs
- ExternalFile.cs
- BindingGraph.cs
- WorkflowRuntimeServiceElementCollection.cs
- RecognizerBase.cs
- RequiredFieldValidator.cs
- DropDownButton.cs
- XAMLParseException.cs
- EntitySetBaseCollection.cs
- DBParameter.cs
- HighlightVisual.cs
- EntityDataSourceContextCreatedEventArgs.cs
- NameTable.cs
- FileUpload.cs
- TimerElapsedEvenArgs.cs
- PriorityQueue.cs
- JsonWriter.cs
- PrtTicket_Public_Simple.cs
- SettingsBase.cs
- PersonalizableTypeEntry.cs
- Command.cs
- _SafeNetHandles.cs
- QualifiedCellIdBoolean.cs
- CompositeControl.cs
- MimeMultiPart.cs
- FixedSOMGroup.cs
- DeadCharTextComposition.cs
- MissingMemberException.cs
- LogReserveAndAppendState.cs
- TemplatePagerField.cs
- GeometryCombineModeValidation.cs
- AttachedPropertiesService.cs
- VariableAction.cs
- Module.cs
- TypeUtil.cs
- XmlSchemaValidator.cs
- MembershipValidatePasswordEventArgs.cs
- FloaterBaseParaClient.cs
- TableCellAutomationPeer.cs
- SwitchElementsCollection.cs
- EmptyCollection.cs
- WorkflowPrinting.cs
- HMACSHA256.cs
- AdornerPresentationContext.cs
- ParseElement.cs
- FileUpload.cs
- EpmSyndicationContentSerializer.cs
- loginstatus.cs
- XamlTemplateSerializer.cs
- ValidationVisibilityAttribute.cs
- WebConfigManager.cs
- SiteMapNodeItem.cs
- TextTreeInsertUndoUnit.cs
- QilName.cs
- CallSiteBinder.cs
- RoutedCommand.cs
- Relationship.cs
- AttributeEmitter.cs
- SAPIEngineTypes.cs