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
- UriTemplateClientFormatter.cs
- Directory.cs
- AppDomainShutdownMonitor.cs
- IntegerValidatorAttribute.cs
- SqlBooleanMismatchVisitor.cs
- PropertyValue.cs
- WindowsRegion.cs
- AxisAngleRotation3D.cs
- DeliveryStrategy.cs
- KnownAssemblyEntry.cs
- EmptyQuery.cs
- OptimizerPatterns.cs
- ControlCollection.cs
- ServicePoint.cs
- ReadOnlyCollection.cs
- ListBindableAttribute.cs
- safesecurityhelperavalon.cs
- UpDownBase.cs
- EventSinkHelperWriter.cs
- ArrayList.cs
- AnnouncementDispatcherAsyncResult.cs
- FileStream.cs
- BamlLocalizer.cs
- ServicePrincipalNameElement.cs
- UIElementParagraph.cs
- TrackingSection.cs
- FormViewPageEventArgs.cs
- TextElementAutomationPeer.cs
- BamlMapTable.cs
- MailHeaderInfo.cs
- FormatterServicesNoSerializableCheck.cs
- ColorTransform.cs
- InvalidCommandTreeException.cs
- MachinePropertyVariants.cs
- EnumConverter.cs
- EncoderFallback.cs
- ProxySimple.cs
- Listbox.cs
- CellIdBoolean.cs
- NetworkInformationException.cs
- ImageAutomationPeer.cs
- WSFederationHttpBindingCollectionElement.cs
- XmlSchemaSimpleContentExtension.cs
- ViewCellRelation.cs
- ServiceEndpointElement.cs
- TemplateManager.cs
- OutputCacheSettings.cs
- FormsAuthenticationConfiguration.cs
- ConnectionPoolManager.cs
- SafeThreadHandle.cs
- DataErrorValidationRule.cs
- ImmutableCollection.cs
- ObjectKeyFrameCollection.cs
- MembershipAdapter.cs
- TraceHandlerErrorFormatter.cs
- XmlSchema.cs
- figurelength.cs
- TranslateTransform.cs
- CharacterHit.cs
- ComNativeDescriptor.cs
- PermissionToken.cs
- HttpDebugHandler.cs
- SeekStoryboard.cs
- IPHostEntry.cs
- HostedAspNetEnvironment.cs
- OpCopier.cs
- SoapIgnoreAttribute.cs
- httpapplicationstate.cs
- ClientData.cs
- WebColorConverter.cs
- LongTypeConverter.cs
- SourceChangedEventArgs.cs
- DataGridViewCellConverter.cs
- CommonDialog.cs
- UnsafeNativeMethods.cs
- FixedSOMPage.cs
- TypeNameConverter.cs
- HttpCacheVary.cs
- JsonFormatReaderGenerator.cs
- ModelUIElement3D.cs
- FullTextLine.cs
- RoutedEventValueSerializer.cs
- DataGridTablesFactory.cs
- TabletDeviceInfo.cs
- List.cs
- BindingContext.cs
- BidOverLoads.cs
- ToolStripGrip.cs
- URLIdentityPermission.cs
- CompiledQuery.cs
- WindowsUpDown.cs
- FloatUtil.cs
- DataTableCollection.cs
- RemoteWebConfigurationHostServer.cs
- SecurityContextSecurityTokenAuthenticator.cs
- Schema.cs
- LoadedOrUnloadedOperation.cs
- OdbcEnvironment.cs
- SkinBuilder.cs
- ApplicationServicesHostFactory.cs