Esempio n. 1
0
        public bool Contains(T value)
        {
            var valueHash = new ValueHash <T>(value);
            var index     = GetIndex(valueHash);

            return(_arr[index] != null && CheckList(_arr[index], valueHash));
        }
Esempio n. 2
0
        private bool CheckList(List <ValueHash <T> > list, ValueHash <T> valueHash)
        {
            if (list.Count == 0)
            {
                return(false);
            }

            return(list.Any(a => a.Hashcode == valueHash.Hashcode));
        }
Esempio n. 3
0
        public bool Remove(T value)
        {
            var valueHash = new ValueHash <T>(value);
            var index     = GetIndex(valueHash);

            if (_arr[index] == null || !CheckList(_arr[index], valueHash))
            {
                return(false);
            }

            _arr[index].Remove(valueHash);
            Count--;
            return(true);
        }
Esempio n. 4
0
        private bool AddValueHash(ValueHash <T> valueHash)
        {
            var index = GetIndex(valueHash);

            if (_arr[index] == null)
            {
                _arr[index] = new List <ValueHash <T> >();
            }

            if (CheckList(_arr[index], valueHash))
            {
                return(false);
            }

            _arr[index].Add(valueHash);
            return(true);
        }
Esempio n. 5
0
 private int GetIndex(ValueHash <T> value)
 {
     return(value.Hashcode % _arr.Length);
 }