Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / ArraySegment.cs / 1 / 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; 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"); _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")); _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. // ==++== // // 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; 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"); _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")); _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
- ScrollItemPattern.cs
- Single.cs
- MediaElementAutomationPeer.cs
- LogEntryUtils.cs
- ConfigXmlDocument.cs
- cryptoapiTransform.cs
- TemplateXamlParser.cs
- _SpnDictionary.cs
- XslTransformFileEditor.cs
- XmlAttribute.cs
- TextFormatterHost.cs
- SoapClientProtocol.cs
- OdbcConnectionOpen.cs
- XmlAttributeCollection.cs
- EntityStoreSchemaGenerator.cs
- Geometry.cs
- EntryWrittenEventArgs.cs
- AncestorChangedEventArgs.cs
- TagNameToTypeMapper.cs
- ListCollectionView.cs
- ExtractorMetadata.cs
- TextRunTypographyProperties.cs
- MenuItem.cs
- SubstitutionList.cs
- MailWebEventProvider.cs
- HitTestParameters3D.cs
- Light.cs
- KeyManager.cs
- LabelEditEvent.cs
- XamlFigureLengthSerializer.cs
- WeakReference.cs
- NamedElement.cs
- COM2AboutBoxPropertyDescriptor.cs
- AppDomainFactory.cs
- HttpApplication.cs
- CombinedTcpChannel.cs
- NavigationService.cs
- AspNetHostingPermission.cs
- NativeMethodsCLR.cs
- ZipFileInfoCollection.cs
- ActivityCodeDomSerializationManager.cs
- ChtmlMobileTextWriter.cs
- DbConnectionPoolOptions.cs
- Calendar.cs
- DataGridHeaderBorder.cs
- Module.cs
- WriteableOnDemandPackagePart.cs
- XamlSerializer.cs
- Range.cs
- Int32AnimationUsingKeyFrames.cs
- DataGridViewTextBoxColumn.cs
- XmlSchemaSimpleContentExtension.cs
- FixedFindEngine.cs
- DecoderBestFitFallback.cs
- TrackingProfile.cs
- WorkflowRuntimeServicesBehavior.cs
- PackagingUtilities.cs
- AccessKeyManager.cs
- TypeConverter.cs
- RelationshipWrapper.cs
- ObjectRef.cs
- FixedTextView.cs
- UpdatePanelTrigger.cs
- ClientRuntimeConfig.cs
- ListControlBoundActionList.cs
- ClientTargetSection.cs
- FormsAuthenticationEventArgs.cs
- UInt32Converter.cs
- FileDataSourceCache.cs
- ProtocolsConfiguration.cs
- ProfilePropertySettings.cs
- InputBindingCollection.cs
- ClaimTypes.cs
- HtmlControlPersistable.cs
- ErrorsHelper.cs
- GatewayDefinition.cs
- RijndaelCryptoServiceProvider.cs
- TreeViewEvent.cs
- HttpGetClientProtocol.cs
- SerializationException.cs
- GroupDescription.cs
- ProcessRequestArgs.cs
- LabelAutomationPeer.cs
- XmlUrlResolver.cs
- ApplicationInfo.cs
- PartManifestEntry.cs
- CommonDialog.cs
- DataGridViewRowStateChangedEventArgs.cs
- EventRouteFactory.cs
- FontFamilyConverter.cs
- AdCreatedEventArgs.cs
- BufferModesCollection.cs
- PreviewPrintController.cs
- PolicyDesigner.cs
- AutoCompleteStringCollection.cs
- TextBoxRenderer.cs
- LingerOption.cs
- Dump.cs
- GacUtil.cs
- CurrentTimeZone.cs