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
- RegexMatch.cs
- SiteMapSection.cs
- PaperSize.cs
- ConfigurationSettings.cs
- MsmqAppDomainProtocolHandler.cs
- basevalidator.cs
- DetailsViewPageEventArgs.cs
- ToolStripDropDownMenu.cs
- SoapEnumAttribute.cs
- PolicyDesigner.cs
- PluralizationService.cs
- TraceFilter.cs
- LockedActivityGlyph.cs
- Material.cs
- BuilderInfo.cs
- TextEditorLists.cs
- TextDataBindingHandler.cs
- ExecutionContext.cs
- EntityTypeEmitter.cs
- EntityContainerEntitySet.cs
- XmlEntity.cs
- EndPoint.cs
- ReferenceSchema.cs
- WorkflowValidationFailedException.cs
- TraversalRequest.cs
- DiscoveryRequestHandler.cs
- XslVisitor.cs
- DBConcurrencyException.cs
- ObjectStateEntry.cs
- LoginNameDesigner.cs
- TextPattern.cs
- ConfigXmlReader.cs
- AdditionalEntityFunctions.cs
- DataControlFieldHeaderCell.cs
- AddIn.cs
- OleDbConnectionFactory.cs
- ResXFileRef.cs
- TreeSet.cs
- TextElementEnumerator.cs
- LogicalMethodInfo.cs
- Size3DConverter.cs
- ActiveXHelper.cs
- LinqDataSourceHelper.cs
- XmlElementAttributes.cs
- NullableDoubleAverageAggregationOperator.cs
- TypeForwardedToAttribute.cs
- DrawingGroupDrawingContext.cs
- ParameterElement.cs
- MethodBody.cs
- recordstatefactory.cs
- WebPartRestoreVerb.cs
- PbrsForward.cs
- Keyboard.cs
- FlowDocumentReaderAutomationPeer.cs
- IfAction.cs
- SamlAssertion.cs
- BlobPersonalizationState.cs
- Duration.cs
- CodeCompiler.cs
- XslException.cs
- DetailsViewDeleteEventArgs.cs
- SortableBindingList.cs
- NavigationExpr.cs
- NotImplementedException.cs
- ToolBarTray.cs
- AvTrace.cs
- ThemeInfoAttribute.cs
- StreamInfo.cs
- MSAAWinEventWrap.cs
- FreezableCollection.cs
- DataExpression.cs
- RequiredArgumentAttribute.cs
- DynamicMetaObject.cs
- StringFunctions.cs
- ClientSettingsSection.cs
- SafeNativeMethods.cs
- WaitingCursor.cs
- StrokeNodeOperations2.cs
- RequestQueue.cs
- SetState.cs
- EventWaitHandleSecurity.cs
- StructuralType.cs
- InputMethodStateTypeInfo.cs
- RequestSecurityToken.cs
- RayMeshGeometry3DHitTestResult.cs
- XmlILCommand.cs
- ZoomPercentageConverter.cs
- SafeNativeMethodsMilCoreApi.cs
- UserControl.cs
- DBCSCodePageEncoding.cs
- CompilationSection.cs
- NativeMethodsCLR.cs
- coordinatorscratchpad.cs
- ExeContext.cs
- DataGridViewRow.cs
- GrammarBuilderPhrase.cs
- ThemeDirectoryCompiler.cs
- TemplatedWizardStep.cs
- FlowNode.cs
- EntryPointNotFoundException.cs