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
- TheQuery.cs
- Pair.cs
- ImageSource.cs
- RowToParametersTransformer.cs
- ProfileEventArgs.cs
- DependencyPropertyKind.cs
- MenuScrollingVisibilityConverter.cs
- XslException.cs
- MarkerProperties.cs
- Version.cs
- DesignTimeTemplateParser.cs
- MessageBuffer.cs
- CodeAttachEventStatement.cs
- ActiveXHelper.cs
- XamlReader.cs
- XsdCachingReader.cs
- OneOfConst.cs
- MetaModel.cs
- SynchronousChannel.cs
- DbConnectionInternal.cs
- Task.cs
- LocalizabilityAttribute.cs
- NumericPagerField.cs
- FunctionDescription.cs
- MemberProjectionIndex.cs
- ListBindableAttribute.cs
- MsmqDecodeHelper.cs
- TargetConverter.cs
- Choices.cs
- Timer.cs
- SwitchElementsCollection.cs
- StyleBamlTreeBuilder.cs
- RewritingProcessor.cs
- ManipulationDevice.cs
- SessionEndingCancelEventArgs.cs
- RegexCaptureCollection.cs
- IdnMapping.cs
- SafeLocalAllocation.cs
- FlowchartSizeFeature.cs
- EntityAdapter.cs
- NewExpression.cs
- Compensation.cs
- BitmapCache.cs
- IISMapPath.cs
- HttpProcessUtility.cs
- SynchronizedPool.cs
- SettingsBase.cs
- ObjectDataSourceEventArgs.cs
- UIElementHelper.cs
- HttpHeaderCollection.cs
- WindowClosedEventArgs.cs
- Int64AnimationBase.cs
- _NetworkingPerfCounters.cs
- DbMetaDataFactory.cs
- AccessViolationException.cs
- Cell.cs
- UserControl.cs
- CharacterString.cs
- FutureFactory.cs
- FormatException.cs
- CellLabel.cs
- PrimarySelectionAdorner.cs
- BitmapEffectCollection.cs
- HiddenFieldPageStatePersister.cs
- SimplePropertyEntry.cs
- ToolBar.cs
- ToolBarOverflowPanel.cs
- DeadCharTextComposition.cs
- InvokePattern.cs
- XmlDesigner.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- CompressEmulationStream.cs
- SoapServerMethod.cs
- ArrayConverter.cs
- IntSecurity.cs
- StylusOverProperty.cs
- VisualBrush.cs
- webeventbuffer.cs
- BitmapCache.cs
- Console.cs
- WinCategoryAttribute.cs
- RtfControlWordInfo.cs
- HtmlSelectionListAdapter.cs
- FileDetails.cs
- OleDbInfoMessageEvent.cs
- Size3DConverter.cs
- RetrieveVirtualItemEventArgs.cs
- XmlException.cs
- ReadWriteControlDesigner.cs
- State.cs
- CodeDomConfigurationHandler.cs
- HashHelper.cs
- Group.cs
- SelectedCellsChangedEventArgs.cs
- TransformerTypeCollection.cs
- UnsupportedPolicyOptionsException.cs
- DSASignatureDeformatter.cs
- FamilyTypefaceCollection.cs
- CustomValidator.cs
- ExtentCqlBlock.cs