Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / Utils / GrowingArray.cs / 1305376 / GrowingArray.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // GrowingArray.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Diagnostics.Contracts; namespace System.Linq.Parallel { ////// A growing array. Unlike List{T}, it makes the internal array available to its user. /// ///internal class GrowingArray { T[] m_array; int m_count; const int DEFAULT_ARRAY_SIZE = 1024; internal GrowingArray() { m_array = new T[DEFAULT_ARRAY_SIZE]; m_count = 0; } //---------------------------------------------------------------------------------------- // Returns the internal array representing the list. Note that the array may be larger // than necessary to hold all elements in the list. // internal T[] InternalArray { get { return m_array; } } internal int Count { get { return m_count; } } internal void Add(T element) { if (m_count >= m_array.Length) { GrowArray(2 * m_array.Length); } m_array[m_count++] = element; } private void GrowArray(int newSize) { Contract.Assert(newSize > m_array.Length); T[] array2 = new T[newSize]; m_array.CopyTo(array2, 0); m_array = array2; } internal void CopyFrom(T[] otherArray, int otherCount) { // Ensure there is just enough room for both. if (m_count + otherCount > m_array.Length) { GrowArray(m_count + otherCount); } // And now just blit the keys directly. Array.Copy(otherArray, 0, m_array, m_count, otherCount); m_count += otherCount; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PrintController.cs
- PropertyNames.cs
- SecurityUtils.cs
- WindowHelperService.cs
- ObjectItemAttributeAssemblyLoader.cs
- HttpServerProtocol.cs
- ToolboxItemFilterAttribute.cs
- CodeCatchClauseCollection.cs
- DefaultShape.cs
- NCryptSafeHandles.cs
- DataGridViewDataConnection.cs
- VerificationAttribute.cs
- AsyncOperationManager.cs
- UpdatePanelTrigger.cs
- BlurBitmapEffect.cs
- DoubleKeyFrameCollection.cs
- BindingMAnagerBase.cs
- ListenerServiceInstallComponent.cs
- BookmarkWorkItem.cs
- ContextMenuStrip.cs
- RegexParser.cs
- DataBoundControl.cs
- Transform3D.cs
- DataGridViewDataConnection.cs
- SQLStringStorage.cs
- ProfileService.cs
- TextTreeRootNode.cs
- CachedPathData.cs
- ObjectDataSourceEventArgs.cs
- PieceNameHelper.cs
- SessionSwitchEventArgs.cs
- RelatedView.cs
- SizeKeyFrameCollection.cs
- SoapHeaderAttribute.cs
- DesignerSerializationVisibilityAttribute.cs
- counter.cs
- BodyGlyph.cs
- CollectionContainer.cs
- MediaEntryAttribute.cs
- StrokeCollection.cs
- EntityConnection.cs
- GlobalDataBindingHandler.cs
- StyleModeStack.cs
- SecondaryViewProvider.cs
- CqlGenerator.cs
- RealizationDrawingContextWalker.cs
- EventlogProvider.cs
- EncoderParameter.cs
- WinFormsComponentEditor.cs
- DataSourceControl.cs
- CodeCompileUnit.cs
- NativeWindow.cs
- LinqMaximalSubtreeNominator.cs
- SessionIDManager.cs
- PublisherMembershipCondition.cs
- QilList.cs
- MembershipSection.cs
- Listbox.cs
- XsltException.cs
- FieldValue.cs
- TextRangeSerialization.cs
- ProxyHelper.cs
- SessionEndingEventArgs.cs
- Registry.cs
- TextTreeFixupNode.cs
- AttributeAction.cs
- FtpWebResponse.cs
- DescendantOverDescendantQuery.cs
- Separator.cs
- DataBinder.cs
- NativeMethods.cs
- StreamingContext.cs
- WebPartAuthorizationEventArgs.cs
- SecurityUniqueId.cs
- BaseCollection.cs
- TextElementCollection.cs
- SqlFunctionAttribute.cs
- NullRuntimeConfig.cs
- PKCS1MaskGenerationMethod.cs
- UnmanagedMemoryAccessor.cs
- CqlGenerator.cs
- CaretElement.cs
- SqlConnectionPoolGroupProviderInfo.cs
- GridViewCancelEditEventArgs.cs
- AbstractDataSvcMapFileLoader.cs
- BaseDataBoundControl.cs
- PropertyTabAttribute.cs
- SqlEnums.cs
- NetworkAddressChange.cs
- NativeMethods.cs
- RegisteredScript.cs
- DesignerVerbCollection.cs
- WorkflowMessageEventHandler.cs
- ClientConfigPaths.cs
- TextBoxRenderer.cs
- ToolboxItemFilterAttribute.cs
- PackWebRequestFactory.cs
- LinkButton.cs
- SelectionPatternIdentifiers.cs
- QilList.cs