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
- CircleEase.cs
- BinaryFormatter.cs
- XPathNavigator.cs
- Delegate.cs
- ProviderMetadataCachedInformation.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- DeviceContext2.cs
- CapabilitiesAssignment.cs
- StringArrayEditor.cs
- PrintPreviewGraphics.cs
- UniqueID.cs
- DashStyle.cs
- BuildDependencySet.cs
- _NTAuthentication.cs
- DictionaryEntry.cs
- URIFormatException.cs
- FontWeights.cs
- PassportAuthenticationEventArgs.cs
- WebPartZoneCollection.cs
- SourceFileInfo.cs
- BevelBitmapEffect.cs
- Decoder.cs
- _NetworkingPerfCounters.cs
- ParameterToken.cs
- PageThemeBuildProvider.cs
- Baml2006KeyRecord.cs
- ConnectionStringsExpressionBuilder.cs
- _Rfc2616CacheValidators.cs
- GeneratedCodeAttribute.cs
- DrawItemEvent.cs
- ReadOnlyCollection.cs
- DllNotFoundException.cs
- followingsibling.cs
- CompletedAsyncResult.cs
- CmsInterop.cs
- ClientUriBehavior.cs
- FlowDocumentScrollViewer.cs
- DesignerVerb.cs
- OracleLob.cs
- PointCollection.cs
- ContextQuery.cs
- Trace.cs
- ObjectDataSource.cs
- RightsManagementPermission.cs
- Decorator.cs
- CompareValidator.cs
- FileSecurity.cs
- PeerNameRegistration.cs
- FlowDocumentReader.cs
- BitmapCodecInfo.cs
- SerializationFieldInfo.cs
- selecteditemcollection.cs
- TableProviderWrapper.cs
- DetailsViewModeEventArgs.cs
- SimpleLine.cs
- XhtmlBasicValidatorAdapter.cs
- LockCookie.cs
- ToolStripDropTargetManager.cs
- StringCollection.cs
- ExclusiveTcpListener.cs
- DispatcherFrame.cs
- StylusTouchDevice.cs
- ViewStateAttachedPropertyFeature.cs
- GridViewEditEventArgs.cs
- FrameworkContentElement.cs
- ControlValuePropertyAttribute.cs
- XamlFigureLengthSerializer.cs
- HtmlTextBoxAdapter.cs
- DataGridPageChangedEventArgs.cs
- MultiView.cs
- AttributeData.cs
- ReadOnlyDictionary.cs
- DataSourceSelectArguments.cs
- CollectionTypeElement.cs
- SmiEventSink.cs
- PageParserFilter.cs
- SByte.cs
- ListDictionary.cs
- WaitHandleCannotBeOpenedException.cs
- HtmlInputRadioButton.cs
- ListViewItemSelectionChangedEvent.cs
- Condition.cs
- RadioButtonBaseAdapter.cs
- ExtendedPropertyCollection.cs
- MachineKeySection.cs
- UnsafeNativeMethodsPenimc.cs
- AdditionalEntityFunctions.cs
- SafeBitVector32.cs
- ItemsControlAutomationPeer.cs
- wgx_commands.cs
- PropertyDescriptorCollection.cs
- SoapWriter.cs
- WebScriptEnablingBehavior.cs
- SplashScreenNativeMethods.cs
- NTAccount.cs
- ConstructorExpr.cs
- WeakReadOnlyCollection.cs
- ValuePattern.cs
- COM2TypeInfoProcessor.cs
- SqlCacheDependencyDatabase.cs