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
- MenuBindingsEditor.cs
- LateBoundBitmapDecoder.cs
- RegularExpressionValidator.cs
- HtmlSelect.cs
- Logging.cs
- GridViewRowPresenter.cs
- TraceEventCache.cs
- PreservationFileWriter.cs
- ProvidePropertyAttribute.cs
- ISAPIWorkerRequest.cs
- MenuEventArgs.cs
- XmlAnyAttributeAttribute.cs
- CodeObject.cs
- WSTrustFeb2005.cs
- RubberbandSelector.cs
- ReflectionUtil.cs
- ManagedCodeMarkers.cs
- Pair.cs
- querybuilder.cs
- TemplateXamlParser.cs
- ManagementScope.cs
- HTMLTagNameToTypeMapper.cs
- InlineCollection.cs
- Win32.cs
- cookie.cs
- DbConnectionPoolOptions.cs
- TypeNameHelper.cs
- HandlerBase.cs
- ViewGenerator.cs
- MissingFieldException.cs
- XamlContextStack.cs
- DelegateTypeInfo.cs
- Point3DValueSerializer.cs
- AsnEncodedData.cs
- mediaeventshelper.cs
- DisplayMemberTemplateSelector.cs
- WebPartTransformerCollection.cs
- SecurityRuntime.cs
- DesignerView.Commands.cs
- OleDbError.cs
- DriveInfo.cs
- ContainerParaClient.cs
- LicenseContext.cs
- ShaderEffect.cs
- Crypto.cs
- Help.cs
- Image.cs
- TableColumnCollection.cs
- NodeFunctions.cs
- ClipboardProcessor.cs
- CharUnicodeInfo.cs
- CommandPlan.cs
- RefreshPropertiesAttribute.cs
- XmlMapping.cs
- TemplateBindingExpression.cs
- CheckBoxField.cs
- CodeSubDirectory.cs
- StateMachineSubscriptionManager.cs
- XmlTextReaderImpl.cs
- ServiceBusyException.cs
- CheckBoxField.cs
- safelinkcollection.cs
- XmlSchemaExporter.cs
- FaultPropagationRecord.cs
- WizardForm.cs
- SessionSwitchEventArgs.cs
- ISessionStateStore.cs
- ControlBuilderAttribute.cs
- lengthconverter.cs
- Rules.cs
- RSAOAEPKeyExchangeFormatter.cs
- rsa.cs
- TextPenaltyModule.cs
- BoolLiteral.cs
- AngleUtil.cs
- AuthenticationService.cs
- FrameworkContextData.cs
- ComPlusSynchronizationContext.cs
- SerTrace.cs
- OleDbException.cs
- HierarchicalDataBoundControl.cs
- GifBitmapDecoder.cs
- OutputCacheSettings.cs
- _OverlappedAsyncResult.cs
- ResourceCollectionInfo.cs
- MulticastNotSupportedException.cs
- DataGridPagerStyle.cs
- TextTreeUndoUnit.cs
- Calendar.cs
- ServiceReference.cs
- KernelTypeValidation.cs
- IPHostEntry.cs
- ExpressionBuilder.cs
- EndpointDiscoveryMetadata.cs
- XmlSchemaChoice.cs
- TextSelectionHelper.cs
- MethodBody.cs
- PassportIdentity.cs
- Soap12ServerProtocol.cs
- WebSysDefaultValueAttribute.cs