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
- ComplexType.cs
- WebEventCodes.cs
- LocationReference.cs
- BooleanProjectedSlot.cs
- CqlWriter.cs
- TextSpan.cs
- StylusPointDescription.cs
- TimeSpanValidatorAttribute.cs
- XmlSchemaElement.cs
- SecurityDocument.cs
- HwndPanningFeedback.cs
- ImageCodecInfo.cs
- SchemaEntity.cs
- DBNull.cs
- WebBrowserNavigatedEventHandler.cs
- GridToolTip.cs
- MenuItemCollection.cs
- DataGridItem.cs
- XamlFigureLengthSerializer.cs
- WebSysDescriptionAttribute.cs
- SkewTransform.cs
- ContentValidator.cs
- SelectionListDesigner.cs
- StreamAsIStream.cs
- DataGridBoundColumn.cs
- DrawItemEvent.cs
- ISFTagAndGuidCache.cs
- Variable.cs
- XPathArrayIterator.cs
- IntegrationExceptionEventArgs.cs
- EntityDesignerBuildProvider.cs
- DescendentsWalkerBase.cs
- WindowsHyperlink.cs
- RulePatternOps.cs
- IteratorDescriptor.cs
- WindowsFont.cs
- CodeGen.cs
- ApplicationId.cs
- PresentationAppDomainManager.cs
- Keywords.cs
- NetMsmqBindingElement.cs
- ProxyWebPartConnectionCollection.cs
- Utility.cs
- FormViewInsertedEventArgs.cs
- EmptyArray.cs
- COM2FontConverter.cs
- HtmlButton.cs
- HttpInputStream.cs
- RelationshipEnd.cs
- updateconfighost.cs
- ObjectSet.cs
- Stack.cs
- ObjectDataSourceMethodEventArgs.cs
- DllNotFoundException.cs
- ComboBox.cs
- AnimationException.cs
- XmlAttributeHolder.cs
- HWStack.cs
- CapabilitiesRule.cs
- ImageSourceValueSerializer.cs
- KeyValueInternalCollection.cs
- SqlConnectionPoolGroupProviderInfo.cs
- StrongNameMembershipCondition.cs
- TcpAppDomainProtocolHandler.cs
- PerformanceCounterCategory.cs
- StrongNameHelpers.cs
- UnmanagedMemoryAccessor.cs
- OpCellTreeNode.cs
- CodeEntryPointMethod.cs
- PopOutPanel.cs
- ZoneIdentityPermission.cs
- OracleMonthSpan.cs
- DataSetMappper.cs
- SignedXml.cs
- TemplatedWizardStep.cs
- datacache.cs
- HighlightComponent.cs
- StringToken.cs
- loginstatus.cs
- UIntPtr.cs
- XmlCodeExporter.cs
- PointCollection.cs
- XmlSerializableServices.cs
- Pointer.cs
- ChildTable.cs
- FuncCompletionCallbackWrapper.cs
- AuthorizationSection.cs
- Queue.cs
- _HeaderInfoTable.cs
- BitmapMetadataEnumerator.cs
- EDesignUtil.cs
- FixedElement.cs
- DnsPermission.cs
- ZipIOCentralDirectoryFileHeader.cs
- Clock.cs
- NotifyIcon.cs
- ScalarOps.cs
- StateItem.cs
- SapiAttributeParser.cs
- ProfileEventArgs.cs