Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- unitconverter.cs
- PropertyInformationCollection.cs
- SQLInt64.cs
- bindurihelper.cs
- StaticDataManager.cs
- TextServicesLoader.cs
- ProjectionCamera.cs
- HttpWriter.cs
- InstallerTypeAttribute.cs
- CodeObjectCreateExpression.cs
- TextElementEditingBehaviorAttribute.cs
- LineSegment.cs
- RoamingStoreFile.cs
- FixedDSBuilder.cs
- HttpHandlerActionCollection.cs
- HScrollBar.cs
- OutOfMemoryException.cs
- ReadOnlyHierarchicalDataSource.cs
- FontEmbeddingManager.cs
- ExistsInCollection.cs
- StickyNoteAnnotations.cs
- Substitution.cs
- SqlRowUpdatedEvent.cs
- TextElementEnumerator.cs
- OracleTransaction.cs
- DataFieldCollectionEditor.cs
- WebPartEditorApplyVerb.cs
- XmlSerializerNamespaces.cs
- HtmlControlAdapter.cs
- PublisherMembershipCondition.cs
- HistoryEventArgs.cs
- MergeLocalizationDirectives.cs
- DecoderFallbackWithFailureFlag.cs
- TdsRecordBufferSetter.cs
- XmlNodeList.cs
- ViewgenContext.cs
- ContravarianceAdapter.cs
- MailMessage.cs
- InputQueue.cs
- DummyDataSource.cs
- FlowLayoutSettings.cs
- ParseElement.cs
- MembershipSection.cs
- IsolatedStorageFileStream.cs
- InternalEnumValidator.cs
- TreeIterators.cs
- WebResourceUtil.cs
- EllipseGeometry.cs
- UdpDiscoveryEndpoint.cs
- WebHttpElement.cs
- Column.cs
- DataGridItemAttachedStorage.cs
- WorkflowDispatchContext.cs
- ProfileModule.cs
- EdmType.cs
- FileDialog_Vista.cs
- ExtendedProtectionPolicy.cs
- ErrorActivity.cs
- DataGridState.cs
- CatalogPartCollection.cs
- UTF7Encoding.cs
- RequestQueue.cs
- CodePageUtils.cs
- WebPartConnectionsCloseVerb.cs
- XAMLParseException.cs
- DirectionalLight.cs
- XmlAttributeProperties.cs
- RuleSetCollection.cs
- StackBuilderSink.cs
- MouseDevice.cs
- DataFormats.cs
- SourceFilter.cs
- Action.cs
- BamlStream.cs
- OleDbWrapper.cs
- HttpRawResponse.cs
- Section.cs
- PointAnimationBase.cs
- FontFamily.cs
- PlainXmlWriter.cs
- TemplateLookupAction.cs
- PrefixQName.cs
- ResourceCategoryAttribute.cs
- DbgUtil.cs
- QilExpression.cs
- RSAProtectedConfigurationProvider.cs
- SerializationAttributes.cs
- FocusManager.cs
- NotCondition.cs
- SendingRequestEventArgs.cs
- Command.cs
- RandomDelaySendsAsyncResult.cs
- DataBoundControl.cs
- PasswordTextContainer.cs
- LogRecordSequence.cs
- CacheEntry.cs
- WebPartZoneBase.cs
- AstTree.cs
- TypeExtensionConverter.cs
- GiveFeedbackEvent.cs