Class CollectionHelper
  Provides helper methods for collections.
    Inheritance
    
    CollectionHelper
   
  
  Assembly: Unity.Collections.dll
  Syntax
  
    public static class CollectionHelper
   
  Fields
  CacheLineSize
  The size in bytes of the current platform's L1 cache lines.
Declaration
  
    public const int CacheLineSize = 64
   
  Field Value
  
    
      
        | Type | Description | 
    
    
      
        | int | The size in bytes of the current platform's L1 cache lines. | 
    
  
  Methods
  
  Align(int, int)
  Returns an allocation size in bytes that factors in alignment.
Declaration
  
    public static int Align(int size, int alignmentPowerOfTwo)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | int | size | The size to align. | 
      
        | int | alignmentPowerOfTwo | A non-zero, positive power of two. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | int | The smallest integer that is greater than or equal to sizeand is a multiple ofalignmentPowerOfTwo. | 
    
  
  Examples
  
  // 55 aligned to 16 is 64.
             int size = CollectionHelper.Align(55, 16);
  Exceptions
  
    
      
        | Type | Condition | 
    
    
      
        | ArgumentException | Thrown if alignmentPowerOfTwois not a non-zero, positive power of two. | 
    
  
  
  Align(ulong, ulong)
  Returns an allocation size in bytes that factors in alignment.
Declaration
  
    public static ulong Align(ulong size, ulong alignmentPowerOfTwo)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | ulong | size | The size to align. | 
      
        | ulong | alignmentPowerOfTwo | A non-zero, positive power of two. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | ulong | The smallest integer that is greater than or equal to sizeand is a multiple ofalignmentPowerOfTwo. | 
    
  
  Examples
  
  // 55 aligned to 16 is 64.
             ulong size = CollectionHelper.Align(55, 16);
  Exceptions
  
    
      
        | Type | Condition | 
    
    
      
        | ArgumentException | Thrown if alignmentPowerOfTwois not a non-zero, positive power of two. | 
    
  
  
  CreateNativeArray<T>(int, AllocatorHandle, NativeArrayOptions)
  
  
  Declaration
  
    public static NativeArray<T> CreateNativeArray<T>(int length, AllocatorManager.AllocatorHandle allocator, NativeArrayOptions options = NativeArrayOptions.ClearMemory) where T : struct
   
  Parameters
  
  Returns
  
  Type Parameters
  
  
  CreateNativeArray<T>(NativeArray<T>, AllocatorHandle)
  
  
  Declaration
  
    public static NativeArray<T> CreateNativeArray<T>(NativeArray<T> array, AllocatorManager.AllocatorHandle allocator) where T : struct
   
  Parameters
  
  Returns
  
  Type Parameters
  
  
  CreateNativeArray<T>(T[], AllocatorHandle)
  
  
  Declaration
  
    public static NativeArray<T> CreateNativeArray<T>(T[] array, AllocatorManager.AllocatorHandle allocator) where T : struct
   
  Parameters
  
  Returns
  
  Type Parameters
  
  
  CreateNativeArray<T, U>(int, ref U, NativeArrayOptions)
  
  
  Declaration
  
    public static NativeArray<T> CreateNativeArray<T, U>(int length, ref U allocator, NativeArrayOptions options = NativeArrayOptions.ClearMemory) where T : struct where U : unmanaged, AllocatorManager.IAllocator
   
  Parameters
  
  Returns
  
  Type Parameters
  
  
  CreateNativeArray<T, U>(T[], ref U)
  
  
  Declaration
  
    public static NativeArray<T> CreateNativeArray<T, U>(T[] array, ref U allocator) where T : struct where U : unmanaged, AllocatorManager.IAllocator
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | T[] | array |  | 
      
        | U | allocator |  | 
    
  
  Returns
  
  Type Parameters
  
  
  CreateNativeMultiHashMap<TKey, TValue, U>(int, ref U)
  
  
  Declaration
  
    public static NativeMultiHashMap<TKey, TValue> CreateNativeMultiHashMap<TKey, TValue, U>(int length, ref U allocator) where TKey : struct, IEquatable<TKey> where TValue : struct where U : unmanaged, AllocatorManager.IAllocator
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | int | length |  | 
      
        | U | allocator |  | 
    
  
  Returns
  
  Type Parameters
  
    
      
        | Name | Description | 
    
    
      
        | TKey |  | 
      
        | TValue |  | 
      
        | U |  | 
    
  
  
  Hash(void*, int)
  Returns a (non-cryptographic) hash of a memory block.
Declaration
  
    public static uint Hash(void* ptr, int bytes)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | void* | ptr | A buffer. | 
      
        | int | bytes | The number of bytes to hash. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | uint | A hash of the bytes. | 
    
  
  
  
  
  IsAligned(ulong, int)
  Returns true if an offset has a given alignment.
Declaration
  
    public static bool IsAligned(ulong offset, int alignmentPowerOfTwo)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | ulong | offset | An offset | 
      
        | int | alignmentPowerOfTwo | A non-zero, positive power of two. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | bool | True if the offset is a multiple of alignmentPowerOfTwo. | 
    
  
  Exceptions
  
    
      
        | Type | Condition | 
    
    
      
        | ArgumentException | Thrown if alignmentPowerOfTwois not a non-zero, positive power of two. | 
    
  
  
  IsAligned(void*, int)
  Returns true if the address represented by the pointer has a given alignment.
Declaration
  
    public static bool IsAligned(void* p, int alignmentPowerOfTwo)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | void* | p | The pointer. | 
      
        | int | alignmentPowerOfTwo | A non-zero, positive power of two. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | bool | True if the address is a multiple of alignmentPowerOfTwo. | 
    
  
  Exceptions
  
    
      
        | Type | Condition | 
    
    
      
        | ArgumentException | Thrown if alignmentPowerOfTwois not a non-zero, positive power of two. | 
    
  
  
  IsPowerOfTwo(int)
  Returns true if a positive value is a non-zero power of two.
Declaration
  
    public static bool IsPowerOfTwo(int value)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | int | value | A positive value. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | bool | True if the value is a non-zero, positive power of two. | 
    
  
  
  
  
  Log2Ceil(int)
  Returns the binary logarithm of the value, but the result is rounded up to the nearest integer.
Declaration
  
    public static int Log2Ceil(int value)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | int | value | The value. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | int | The binary logarithm of the value, but the result is rounded up to the nearest integer. | 
    
  
  
  Log2Floor(int)
  Returns the binary logarithm of the value, but the result is rounded down to the nearest integer.
Declaration
  
    public static int Log2Floor(int value)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | int | value | The value. | 
    
  
  Returns
  
    
      
        | Type | Description | 
    
    
      
        | int | The binary logarithm of the value, but the result is rounded down to the nearest integer. |