Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / ArraySegment.cs / 1305376 / ArraySegment.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ArraySegment** ** ** Purpose: Convenient wrapper for an array, an offset, and ** a count. Ideally used in streams & collections. ** Net Classes will consume an array of these. ** ** ===========================================================*/ using System.Runtime.InteropServices; using System.Diagnostics.Contracts; namespace System { [Serializable] public struct ArraySegment { private T[] _array; private int _offset; private int _count; public ArraySegment(T[] array) { if (array == null) throw new ArgumentNullException("array"); Contract.EndContractBlock(); _array = array; _offset = 0; _count = array.Length; } public ArraySegment(T[] array, int offset, int count) { if (array == null) throw new ArgumentNullException("array"); if (offset < 0) throw new ArgumentOutOfRangeException("offset", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); if (array.Length - offset < count) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen")); Contract.EndContractBlock(); _array = array; _offset = offset; _count = count; } public T[] Array { get { return _array; } } public int Offset { get { return _offset; } } public int Count { get { return _count; } } public override int GetHashCode() { return _array.GetHashCode() ^ _offset ^ _count; } public override bool Equals(Object obj) { if (obj is ArraySegment ) return Equals((ArraySegment )obj); else return false; } public bool Equals(ArraySegment obj) { return obj._array == _array && obj._offset == _offset && obj._count == _count; } public static bool operator ==(ArraySegment a, ArraySegment b) { return a.Equals(b); } public static bool operator !=(ArraySegment a, ArraySegment b) { return !(a == b); } } } // 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
- TextTreePropertyUndoUnit.cs
- DeadCharTextComposition.cs
- UnsafeNativeMethods.cs
- bidPrivateBase.cs
- TimeIntervalCollection.cs
- ListManagerBindingsCollection.cs
- SpellerHighlightLayer.cs
- CatalogPartChrome.cs
- MarkupExtensionParser.cs
- SliderAutomationPeer.cs
- BinaryFormatterSinks.cs
- SqlDataSourceCommandEventArgs.cs
- _AcceptOverlappedAsyncResult.cs
- RegistryConfigurationProvider.cs
- HttpModuleAction.cs
- DatasetMethodGenerator.cs
- ListViewDeleteEventArgs.cs
- CompositeControlDesigner.cs
- ReachPageContentSerializer.cs
- wgx_render.cs
- RealizationContext.cs
- TextViewBase.cs
- CounterSampleCalculator.cs
- ScriptRegistrationManager.cs
- _ListenerRequestStream.cs
- SoapProcessingBehavior.cs
- DataBindingHandlerAttribute.cs
- AuthenticationModulesSection.cs
- RuntimeCompatibilityAttribute.cs
- DBSqlParserColumn.cs
- ListBox.cs
- ImageAttributes.cs
- XmlBufferReader.cs
- DiffuseMaterial.cs
- CatalogPartCollection.cs
- X500Name.cs
- SizeIndependentAnimationStorage.cs
- TypeResolvingOptions.cs
- DataSourceControlBuilder.cs
- DataGridViewColumn.cs
- XmlReturnReader.cs
- FixedSOMTableRow.cs
- PeerNeighborManager.cs
- ProviderCollection.cs
- BulletedList.cs
- TreeWalkHelper.cs
- PerformanceCounterScope.cs
- EastAsianLunisolarCalendar.cs
- HttpWebResponse.cs
- mediaeventshelper.cs
- StorageAssociationSetMapping.cs
- Point4D.cs
- Geometry3D.cs
- TextControl.cs
- Decimal.cs
- ServiceHostFactory.cs
- PageParserFilter.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- FormsAuthentication.cs
- QilChoice.cs
- IDispatchConstantAttribute.cs
- StylusPointCollection.cs
- Int64.cs
- ApplyTemplatesAction.cs
- ElementHost.cs
- Hyperlink.cs
- Matrix.cs
- LoginDesignerUtil.cs
- ServicePoint.cs
- HtmlTableRow.cs
- EventLog.cs
- StringConcat.cs
- ITextView.cs
- PageContentCollection.cs
- Int16Converter.cs
- WindowCollection.cs
- InputReport.cs
- AttachInfo.cs
- PropertyIDSet.cs
- LinqDataSourceUpdateEventArgs.cs
- Floater.cs
- CalendarTable.cs
- SpeechEvent.cs
- PermissionRequestEvidence.cs
- ManagementObjectCollection.cs
- FloatAverageAggregationOperator.cs
- BitmapDownload.cs
- DateTimeFormatInfo.cs
- StateManagedCollection.cs
- HttpConfigurationContext.cs
- DesignerSerializationOptionsAttribute.cs
- SQLInt16Storage.cs
- FollowerQueueCreator.cs
- ValidationError.cs
- ProcessHostFactoryHelper.cs
- GraphicsPath.cs
- XmlTextWriter.cs
- SmiMetaDataProperty.cs
- PreviewPageInfo.cs
- Figure.cs