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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BookmarkScopeManager.cs
- SurrogateEncoder.cs
- RegexStringValidator.cs
- MobileErrorInfo.cs
- WorkflowServiceHostFactory.cs
- PrintSchema.cs
- TTSEngineTypes.cs
- Image.cs
- ConfigUtil.cs
- complextypematerializer.cs
- TraceContext.cs
- Schedule.cs
- RenderData.cs
- MessageFault.cs
- SvcMapFileLoader.cs
- TrackingValidationObjectDictionary.cs
- ComPlusInstanceProvider.cs
- ExtractorMetadata.cs
- SemaphoreSecurity.cs
- GPRECT.cs
- DefaultValueConverter.cs
- EventItfInfo.cs
- ResourcePool.cs
- KeyInterop.cs
- WebReferenceCollection.cs
- RsaSecurityKey.cs
- StringInfo.cs
- BitmapSizeOptions.cs
- PerfCounterSection.cs
- InheritedPropertyDescriptor.cs
- DescendantOverDescendantQuery.cs
- Utilities.cs
- XmlUtil.cs
- ScaleTransform3D.cs
- StickyNoteHelper.cs
- ScriptReferenceBase.cs
- MimeTextImporter.cs
- FileDialog_Vista.cs
- Configuration.cs
- ConfigurationSectionCollection.cs
- NameObjectCollectionBase.cs
- DecoderExceptionFallback.cs
- SynchronizedReadOnlyCollection.cs
- FullTextState.cs
- altserialization.cs
- ItemsPresenter.cs
- WSTransactionSection.cs
- ConnectionOrientedTransportManager.cs
- WebBrowserHelper.cs
- TemplateBindingExtension.cs
- SrgsDocument.cs
- UInt64.cs
- BrowserTree.cs
- SelectionRangeConverter.cs
- IListConverters.cs
- CreatingCookieEventArgs.cs
- DataServiceRequestArgs.cs
- AssemblyFilter.cs
- validationstate.cs
- BrowserPolicyValidator.cs
- SqlCacheDependencyDatabaseCollection.cs
- SettingsProperty.cs
- ReversePositionQuery.cs
- WasNotInstalledException.cs
- DbConnectionPoolGroup.cs
- DesignerTextWriter.cs
- RsaKeyGen.cs
- DirectionalLight.cs
- SelectionItemProviderWrapper.cs
- WebPartEditorOkVerb.cs
- GridViewCommandEventArgs.cs
- ClusterSafeNativeMethods.cs
- MetadataSource.cs
- DataPagerFieldCollection.cs
- EditorZone.cs
- SafeCryptoHandles.cs
- BitmapPalette.cs
- XmlBinaryReader.cs
- ReferenceService.cs
- ThemeInfoAttribute.cs
- Grid.cs
- StateItem.cs
- ActivationArguments.cs
- OrderedDictionary.cs
- ObjectView.cs
- RevocationPoint.cs
- MessageSmuggler.cs
- CacheChildrenQuery.cs
- NavigationPropertyEmitter.cs
- FormsAuthenticationTicket.cs
- TextParagraph.cs
- RegisteredDisposeScript.cs
- NameScope.cs
- CodeAttributeDeclaration.cs
- DetailsViewDeleteEventArgs.cs
- TailCallAnalyzer.cs
- BitmapFrameDecode.cs
- XmlHierarchicalEnumerable.cs
- CatalogPartCollection.cs
- Grant.cs