Code:
/ DotNET / DotNET / 8.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
- HostExecutionContextManager.cs
- CorrelationService.cs
- WindowsFont.cs
- RectValueSerializer.cs
- AndCondition.cs
- RawContentTypeMapper.cs
- RadioButtonFlatAdapter.cs
- ParserOptions.cs
- IgnoreFlushAndCloseStream.cs
- SqlInternalConnectionSmi.cs
- WorkflowViewService.cs
- System.Data.OracleClient_BID.cs
- IISMapPath.cs
- safemediahandle.cs
- CustomExpressionEventArgs.cs
- DesignerLabelAdapter.cs
- RepeaterItem.cs
- TransactedReceiveData.cs
- PrintingPermissionAttribute.cs
- _OSSOCK.cs
- MessageEnumerator.cs
- StateDesigner.Layouts.cs
- CompositeFontParser.cs
- SafePEFileHandle.cs
- LockCookie.cs
- XmlNode.cs
- WebBrowserNavigatingEventHandler.cs
- LocationEnvironment.cs
- VoiceInfo.cs
- PngBitmapDecoder.cs
- Stroke.cs
- COM2TypeInfoProcessor.cs
- Soap12ServerProtocol.cs
- NativeActivityTransactionContext.cs
- MonthCalendar.cs
- WebUtility.cs
- ElementsClipboardData.cs
- DragEventArgs.cs
- IssuedTokenServiceCredential.cs
- MdiWindowListItemConverter.cs
- PageThemeCodeDomTreeGenerator.cs
- SourceChangedEventArgs.cs
- ArgumentNullException.cs
- SqlFacetAttribute.cs
- EdmConstants.cs
- SoapWriter.cs
- ClientOperationFormatterProvider.cs
- SqlMethodAttribute.cs
- Mapping.cs
- TextEmbeddedObject.cs
- DataViewSetting.cs
- _DigestClient.cs
- FormatException.cs
- TextEffectCollection.cs
- ApplicationBuildProvider.cs
- Duration.cs
- PropertyDescriptor.cs
- PolyLineSegment.cs
- IOThreadScheduler.cs
- StringUtil.cs
- EntityTransaction.cs
- Win32SafeHandles.cs
- DataContractJsonSerializerOperationFormatter.cs
- ManipulationDevice.cs
- ViewLoader.cs
- XmlTypeAttribute.cs
- PathSegmentCollection.cs
- ServerIdentity.cs
- RawStylusSystemGestureInputReport.cs
- LoadWorkflowByKeyAsyncResult.cs
- TextEditorCharacters.cs
- ZipIOLocalFileHeader.cs
- RowVisual.cs
- SQLBinaryStorage.cs
- DataGridTable.cs
- State.cs
- AssociatedControlConverter.cs
- AlphabeticalEnumConverter.cs
- BezierSegment.cs
- WebPartEventArgs.cs
- ScriptRegistrationManager.cs
- QueryExtender.cs
- UriScheme.cs
- SqlClientPermission.cs
- Rectangle.cs
- PathFigure.cs
- UpdateExpressionVisitor.cs
- MemoryFailPoint.cs
- UTF7Encoding.cs
- PageCatalogPart.cs
- SqlStream.cs
- HttpCacheVary.cs
- ListViewItem.cs
- DesignOnlyAttribute.cs
- DropAnimation.xaml.cs
- SerializationException.cs
- Vector3DCollectionConverter.cs
- ThreadStartException.cs
- RectAnimation.cs
- TargetInvocationException.cs