Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SourceChangedEventArgs.cs
- IRCollection.cs
- SecurityContextCookieSerializer.cs
- DiscardableAttribute.cs
- ResourceSetExpression.cs
- ToolBarButtonClickEvent.cs
- AsyncCodeActivity.cs
- WorkflowRuntimeEndpoint.cs
- oledbmetadatacolumnnames.cs
- TextInfo.cs
- Parsers.cs
- EntityDataSourceReferenceGroup.cs
- LockedBorderGlyph.cs
- UnsafeNetInfoNativeMethods.cs
- FormsAuthenticationEventArgs.cs
- SocketAddress.cs
- SID.cs
- WebPartVerbsEventArgs.cs
- OutputCacheSettings.cs
- PageBuildProvider.cs
- DataGridViewRow.cs
- NegotiateStream.cs
- MexNamedPipeBindingCollectionElement.cs
- FrameworkTextComposition.cs
- CheckBoxFlatAdapter.cs
- WebPartManagerInternals.cs
- QuaternionAnimationUsingKeyFrames.cs
- HtmlInputSubmit.cs
- SettingsContext.cs
- LayoutEditorPart.cs
- PenCursorManager.cs
- Exception.cs
- Error.cs
- ConnectionProviderAttribute.cs
- WorkflowInstanceTerminatedRecord.cs
- ByteStream.cs
- HandlerBase.cs
- StringExpressionSet.cs
- PropertyPathWorker.cs
- XamlPoint3DCollectionSerializer.cs
- DynamicILGenerator.cs
- XmlElementAttributes.cs
- ConfigurationElement.cs
- COM2AboutBoxPropertyDescriptor.cs
- TrackBarDesigner.cs
- OracleTimeSpan.cs
- AbsoluteQuery.cs
- ToolStripPanelCell.cs
- TextProperties.cs
- OleDbConnectionFactory.cs
- UnsafeNativeMethods.cs
- ProfileParameter.cs
- FrameworkContentElement.cs
- JoinCqlBlock.cs
- _HeaderInfoTable.cs
- GraphicsPath.cs
- SerializerProvider.cs
- Point4DValueSerializer.cs
- LinqDataSourceSelectEventArgs.cs
- LongTypeConverter.cs
- ToolStripContentPanelRenderEventArgs.cs
- CDSCollectionETWBCLProvider.cs
- XamlFilter.cs
- Color.cs
- updatecommandorderer.cs
- XamlFilter.cs
- WebMessageBodyStyleHelper.cs
- FormsAuthenticationModule.cs
- SQLMoneyStorage.cs
- ColorTransformHelper.cs
- ConfigurationValue.cs
- TextPattern.cs
- SQLRoleProvider.cs
- ExceptionCollection.cs
- TextWriterEngine.cs
- ResourceBinder.cs
- LinkedResourceCollection.cs
- AttachmentCollection.cs
- ToolStripItem.cs
- TokenFactoryBase.cs
- RichTextBoxConstants.cs
- BreadCrumbTextConverter.cs
- ProcessThreadCollection.cs
- XmlConverter.cs
- DrawingContextDrawingContextWalker.cs
- ServiceDefaults.cs
- TextPattern.cs
- CompiledQuery.cs
- ListItem.cs
- ScriptHandlerFactory.cs
- ParsedAttributeCollection.cs
- TypeLibConverter.cs
- Single.cs
- CodeDomSerializer.cs
- webproxy.cs
- objectquery_tresulttype.cs
- RequestQueue.cs
- RuleSettingsCollection.cs
- ServiceModelStringsVersion1.cs
- CellLabel.cs