public DictionaryULong(DictionaryULong <TValue> dictionary, IEqualityComparer <TKey> comparer) :
     this(dictionary != null? dictionary.Count: 0, comparer)
 {
     foreach (KeyValuePair <TKey, TValue> pair in dictionary)
     {
         Add(pair.Key, pair.Value);
     }
 }
 public void CopyFrom(DictionaryULong <TValue> other)
 {
     ArrayUtils.Copy(other.buckets, ref this.buckets);
     ArrayUtils.Copy(other.entries, ref this.entries);
     this.count     = other.count;
     this.version   = other.version;
     this.freeList  = other.freeList;
     this.freeCount = other.freeCount;
 }
 public void CopyFrom <TCopy>(DictionaryULong <TValue> other, TCopy copy) where TCopy : IArrayElementCopy <TValue>
 {
     ArrayUtils.Copy(other.buckets, ref this.buckets);
     ArrayUtils.Copy(other.entries, ref this.entries, new EntryCopy <TCopy>()
     {
         copy = copy
     });
     this.count     = other.count;
     this.version   = other.version;
     this.freeList  = other.freeList;
     this.freeCount = other.freeCount;
 }
 public DictionaryULong(DictionaryULong <TValue> dictionary) : this(dictionary, null)
 {
 }