Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OleDbDataAdapter.cs
- SessionParameter.cs
- DocumentSchemaValidator.cs
- AmbientLight.cs
- ContainerUIElement3D.cs
- FontStyle.cs
- NativeMethods.cs
- RepeaterItemEventArgs.cs
- SqlUDTStorage.cs
- MimeTypeAttribute.cs
- IsolatedStorageException.cs
- WorkflowStateRollbackService.cs
- OracleTimeSpan.cs
- KnownTypeHelper.cs
- NavigateEvent.cs
- COM2IPerPropertyBrowsingHandler.cs
- ProbeMatches11.cs
- PermissionAttributes.cs
- LoadRetryHandler.cs
- GreaterThanOrEqual.cs
- ThicknessAnimation.cs
- WindowsSlider.cs
- WebPartPersonalization.cs
- ImageMapEventArgs.cs
- Empty.cs
- DrawingVisual.cs
- UpdateTracker.cs
- CommandSet.cs
- XmlLanguage.cs
- BuildManager.cs
- XmlEnumAttribute.cs
- StorageMappingItemLoader.cs
- Bezier.cs
- RootBrowserWindowAutomationPeer.cs
- StringUtil.cs
- FieldNameLookup.cs
- CustomAttributeFormatException.cs
- GestureRecognizer.cs
- LazyInitializer.cs
- EntityDataSourceChangingEventArgs.cs
- EarlyBoundInfo.cs
- GetPageNumberCompletedEventArgs.cs
- InvokeHandlers.cs
- Transform.cs
- DataGridViewCellMouseEventArgs.cs
- DebugHandleTracker.cs
- IisTraceListener.cs
- NativeMethods.cs
- AjaxFrameworkAssemblyAttribute.cs
- Globals.cs
- CopyOnWriteList.cs
- RowParagraph.cs
- Accessors.cs
- TextEffect.cs
- DtcInterfaces.cs
- EdmMember.cs
- MetroSerializationManager.cs
- SessionEndedEventArgs.cs
- NativeObjectSecurity.cs
- ConsumerConnectionPointCollection.cs
- BindingMAnagerBase.cs
- StylusTip.cs
- Single.cs
- DockingAttribute.cs
- GridViewHeaderRowPresenter.cs
- WinEventQueueItem.cs
- Label.cs
- DateTimeConverter2.cs
- DataControlButton.cs
- SqlUtil.cs
- StrongTypingException.cs
- ArrayList.cs
- EntityCommandDefinition.cs
- CompressedStack.cs
- UnsafeCollabNativeMethods.cs
- ListViewCommandEventArgs.cs
- DbParameterCollectionHelper.cs
- DrawListViewSubItemEventArgs.cs
- HttpHandlersInstallComponent.cs
- EventDescriptorCollection.cs
- ScrollItemProviderWrapper.cs
- SqlCacheDependencySection.cs
- LateBoundBitmapDecoder.cs
- TableLayoutCellPaintEventArgs.cs
- control.ime.cs
- MenuScrollingVisibilityConverter.cs
- FlowDocumentFormatter.cs
- DocumentDesigner.cs
- HTTPRemotingHandler.cs
- ComplexBindingPropertiesAttribute.cs
- EventLogPermissionAttribute.cs
- SafeNativeMethods.cs
- SqlFactory.cs
- CrossAppDomainChannel.cs
- _NetworkingPerfCounters.cs
- COM2Enum.cs
- DesignerCategoryAttribute.cs
- As.cs
- CompilerLocalReference.cs
- XmlMemberMapping.cs